スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

RailsでMigrationで主キーをBIGINTにする等

DBはPostgreSQLを想定しています。
以下のコマンドでnmというカラムを持ったprojectsテーブルを作るRailsのコマンドを実行します。
bundle exec rails g model project nm:string

作成されたファイルは以下の通りです。

class CreateProjects < ActiveRecord::Migration
def change
create_table :projects do |t|
t.string :nm

t.timestamps null: false
end
end
end

この内容では主キーのidがINTで作成されます。
またcreated_at, updated_atもTIMESTAMPで作成されます。
しかしここではidはBIGINT, created_at, updated_atはTIMESTAMPTZ作成したいです。
そこで作成されたこのファイルを手で書き換えます。
他にも自分がよく使うカラムを追加します。
created_id, updated_id, deleted_idは処理した人のid
created_pg, updated_pg, deleted_pgは処理したプログラム名
deleted_atは削除した日時
bkは備考です。

class CreateProjects < ActiveRecord::Migration
def change
create_table :projects, id: false do |t|
t.column :id, 'BIGSERIAL PRIMARY KEY'

t.text :nm, null: false, default: ''

t.column :created_id, 'BIGINT', null: false, default: 0
t.column :updated_id, 'BIGINT', null: false, default: 0
t.column :deleted_id, 'BIGINT', null: false, default: 0

t.text :created_pg, null: false, default: ''
t.text :updated_pg, null: false, default: ''
t.text :deleted_pg, null: false, default: ''

t.column :created_at, 'TIMESTAMPTZ', null: false
t.column :updated_at, 'TIMESTAMPTZ', null: false
t.column :deleted_at, 'TIMESTAMPTZ'

t.text :bk
end
end
end
スポンサーサイト

COMMENTS

COMMENT FORM

TRACKBACK


この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。