rails6 DBテーブルを作成する

rails6 DBテーブルを作成する

rails6で、migrateを使用してDBテーブルを作成するまでの手順を記述してます。railsのバージョンは6.1.0です。

環境

  • OS ubuntu20.10
  • ruby 2.7.2
  • rails 6.1.0
  • Postgresql 13.1 (dockerで構築)

model作成

まずは、「rails generate」で「model」と「マイグレーションファイル」を作成します。
※「rails generate」は「rails g」と省略できます。

rails g model テーブル名 カラム名:型,カラム名:型...

ここでは、カラム「name」と「age」をもった「users」テーブルを作成します。
※実際に作成されるテーブル名は、usersと複数形になります。

rails g model User name:string age:integer

<出力結果>
Running via Spring preloader in process 48804
      invoke  active_record
      create    db/migrate/2020xxxxxx_create_users.rb
      create    app/models/user.rb
      invoke    test_unit
      create      test/models/user_test.rb
      create      test/fixtures/users.yml

uniqueにしたい場合は、「name:string:unique」とします。
カラムの型を指定しない場合は、全てstringとなります。

実際に作成された「2020xxxxxx_create_users.rb」のコードは以下のようになります。

class CreateUsers < ActiveRecord::Migration[6.1]
  def change
    create_table :users do |t|
      t.string :name
      t.integer :age

      t.timestamps
    end
  end
end

テーブル作成

用意ができたので、「migrate」コマンドを実行してテーブルを作成します。

rails db:migrate

<出力結果>
== 2020xxxxxx CreateUsers: migrating ======================================
-- create_table(:users)
   -> 0.0522s
== 2020xxxxxx CreateUsers: migrated (0.0550s) =============================

テーブル確認

「users」テーブルが作成されていることが確認できます。

ファイル削除

テーブルを作成し終えて、特に必要がなければファイルは、destroyでクラス名を指定して削除できます。
※ここで作成したクラス名は「2020xxxxxx_create_users.rb」の「CreateUsers」となります。

rails destroy migration CreateUsers

<出力結果>
Running via Spring preloader in process 50082
      invoke  active_record
      remove    db/migrate/2020xxxxxx_create_users.rb