はじめに
開発環境はrailsのデータベースを使用しており、本番環境では「Amazon RDS」の「MySQL」を使用していた。
そこでカラムの型を変更する必要があったので、下記のコードを実行したら問題なく変更できた。
結論
MySQLに接続し、以下のコードを実行してください
ALTER TABLE [テーブル名] MODIFY [カラム名] [変更したい型];
#経緯
開発環境のRailsで緯度、経度を登録しているテーブルがあり、それぞれのカラムをfloat
で登録していました。
しかし、本番環境の「Amazon RDS」にそのまま移行すると、登録していた数値が正しく表示されませんでした。
おかしいと思って調べてみると、float
は単精度浮動小数点実数と言って有効桁数が7桁までとのこと。
一方で、double
というデータ型であれば、倍精度浮動小数点実数と言って有効桁数が16桁まであるようです。
なので、対象のデータ型をfloat
からdouble
に変更すれば良さそうだと気づきました。
#実行
1.MySQLに接続し、データベース一覧を確認します
SHOW DATABASES;
2.上記のリストの中から、該当のデータベースに移動します
USE [データベース名];
3.テーブルの一覧を表示します
変更したいテーブルを確認します
SHOW TABLES;
4.現状のテーブル構成を確認しておきましょう
DESC [該当のテーブル名];
5.それでは、実際にカラムのデータ型を変更してみましょう
#NOT NULL制約をつけたい場合は、最後にNOT NULLをつけてください
ALTER TABLE [テーブル名] MODIFY [カラム名] [変更したい型] NOT NULL;
#例として、テーブル名:check_points、カラム名: latitude、変更したい型: DOUBLEだった時
ALTER TABLE check_points MODIFY latitude DOUBLE NOT NULL;
6.テーブルが変更されたことを確認してください
DESC [該当のテーブル名];
以上の作業で、無事にカラムのデータ型を変更することができました!
#参考になった記事