Railsでアプリケーションを作成していると、
「〇〇の項目(カラム)を追加し忘れた、、、」
「〇〇の項目(カラム)を追加したいな」
と思うことがありますよね。
今日は、カラムの追加の仕方を2パターンご紹介致します。
①ターミナルから追加する
1つ目の方法として、ターミナルからコードを実行して追加する方法があります。
以下を実行します。
rails g migration Addカラム名To追加先のテーブル名 追加したいカラム名:型
1. 新しいマイグレーションファイルを作成
※Addの後に記述するカラム名は必ずしも追加するカラム名と同一でなくても大丈夫です。
ただ、実行するたびにマイグレーションファイルが増えていくのであまり使いすぎると編集の際に見にくくなってしまう可能性があります。
以下、事例を記載しますのでご参照ください。
#編集したいアプリケーションのディレクトリで実行
#blogsテーブルにnameカラムをstring型で、ageカラムをinteger型で追加するマイグレーションファイルの作成
rails g migration AddNameToBlogs name:string age:integer
③下記画像のように、nameカラムとageカラムが記述してある新しいマイグレーションファイルが作成されたのでrails db:migrateを実行。
#編集したいアプリケーションのディレクトリで実行
rails db:migrate
④blogsテーブルにnameカラムとageカラムを追加することができました。また、すでに登録してあったcreated_atとupdated_atのデータも残ったままです。
以上が、ターミナルから追加する方法です。
②一度テーブルをrollbackしてから再度migrateする
2つ目の方法は、migrateしてあるテーブルを一度rollbackして編集し直す方法です。
以下の流れを実行します。
#編集したいアプリケーションのディレクトリで実行
rails db:rollback
#マイグレーションファイルを編集し、カラムを追加する。
#編集したいアプリケーションのディレクトリで実行
rails db:migrate
この操作では、一度rollbackするため既に登録してあるデータが削除されてしまいます。
既存のマイグレーションファイルを編集するため、①のやり方のようにマイグレーションファイルが新しく追加されないので編集画面は整理されます。
以下、事例をご参照ください。
Ex.)rollbackした後編集し、nameカラムとageカラムを追加する。
①ターミナルの事例①と同様。
②既にmigrateしてあるblogsテーブルをrollbackする。
#編集したいアプリケーションのディレクトリで実行
rails db:rollback
③マイグレーションファイルを編集。下記画像のようにnameカラムとageカラムを追加。
④編集後、migrateして追加完了。
ただ、一度rollbackしてしまったため既に登録してあったcreated_atとupdated_atのデータは削除されてしまいました。
まとめ
以上、カラムの追加方法2点ご紹介致しました。
それぞれメリット・デメリットあったと思いますが、個人的にはデータが削除されない①のターミナルから実行するやり方が実用的かなと思いました。
場面に合わせて、使い分けて実践してみたください!
他にもrailsに関する記述の仕方を掲載していますのでよろしければご参照ください!
空白・重複を防ぐためにはどうする?制約の使い方
おまけ【社会人になってから何を学べばいいか迷っている方へ】
小学校、中学校、高校、大学と今までは学ぶ内容をある程度指定されてきたため、”何を勉強するか”については迷うことはなかったかと思います。
ただ、社会に出てからは”何を勉強すればいいか”は誰も教えてくれません。そのため、周りの優秀な友達などを見ていると漠然とした不安を抱えることがあると思います。
ですが、「もう学びに迷う必要はない。これさえ見れば大丈夫!」私が実際に使っている”URU”というコンテンツを紹介します。
このコンテンツでは、独立・起業を目指す方向けにビジネスの基礎的な考え方、経営についてをはじめ、Youtube編集、Instagram運用、ブログの書き方、話し方・伝え方、株・投資などなど様々な内容を非常にわかりやすく教えてくれます!規模の大きさも信頼性があります。
私自身、社会人になってから色々な本や動画に手を出してみましたが、「学んでいる内容ずれてないかな?」と心の片隅で不安を抱えたまま学んでいました。全てが何か1つの媒体で学べたら楽なのに、、、と考えていたところで、URUというコンテンツに出会いました、
学ぶコンテンツを悩んでいる時間はもったいないです。
Youtubeにいくつも動画が上がっているのでまずはぜひご覧になってみてください!
URU Youtubeチャンネル
↓参考動画
MUP Youtubeチャンネル
↓参考動画
コメント