ローカル開発環境のModelデータをコンソールで書き換える(Rails)
ローカル開発環境で登録されたデータを書き換えたかったので備忘録として書く。
変更したいModelのテーブルを見る
- DBを操作するためにコンソールを起動する
% rails dbconsole
するとプロンプトがかわりSQLを叩けるようになる
development=#
- SQLを叩いて見たいModelとカラムを出す
今回はproducts
テーブル(モデル)のcreated_at
とupdated_at
を変更したいので
id
を含めてテーブルを出力する
development=# select id,created_at,updated_at from products; id | created_at | updated_at ------------+----------------------------+---------------------------- 1033498682 | 2021-02-11 21:19:28.377342 | 2021-02-19 05:16:38.259334 1033498689 | 2021-02-16 06:02:34.481795 | 2021-02-19 06:21:35.591053 1033498684 | 2021-02-15 10:05:29.429805 | 2021-02-19 07:55:34.359815 1033498703 | 2021-02-22 05:19:27.567242 | 2021-02-22 05:19:27.729664 1033498704 | 2021-02-22 05:26:57.909896 | 2021-02-22 05:26:57.922758 1033498681 | 2021-02-09 01:04:37.932581 | 2021-02-09 01:04:37.932581 1033498649 | 2021-01-28 08:00:30.830522 | 2021-02-14 06:56:01.74118 1033498698 | 2021-02-16 06:19:37.667765 | 2021-02-17 05:04:01.551797 1033498696 | 2021-02-16 06:19:19.166006 | 2021-02-17 05:04:04.504286 1033498695 | 2021-02-16 06:19:04.007454 | 2021-02-17 05:05:13.466765 1033498694 | 2021-02-16 06:18:18.464509 | 2021-02-17 05:05:14.955893 1033498693 | 2021-02-16 06:18:06.320066 | 2021-02-17 05:05:15.903362 1033498691 | 2021-02-10 21:03:00.05267 | 2021-02-10 21:03:00.05267 1033498690 | 2021-02-13 21:03:00.05267 | 2021-02-13 21:03:00.05267
この表を確認しながら次の作業で変更していく
DBのデータを変更する
続いて
- データを変更するためにRailsのコンソールに切り替える
% rails console
叩くと以下のようにirbが起動する
Loading development environment (Rails 6.0.3.4) irb(main):001:0>
- 変更したいレコードをローカル変数に格納する
findメソッドで先ほどのテーブルのid
(変更したいレコードのid)を引数に入れる
irb(main):001:0> product = Product.find(1033498682) => #<Product id: 1033498682, practice_id: 363506445, user_id: 253826460, body: "fdafdadsf", created_at: "2021-02-11 21:19:28", updated_at: "2021-02-19 05:16:38", wip: false, published_at: "2021-02-11 21:19:28", checker_id: 679998234>
created_at
フィールドとupdated_at
フィールドを変更する
updateメソッドで変更したい値を指定して変更する
irb(main):002:0> product.update(created_at: "2021-02-10 21:19:28.377342", updated_at: "2021-02-10 21:19:28.377342") => true
trueで変更完了 - テーブルを確認すると変更されているはず
development=# select id,created_at,updated_at from products; id | created_at | updated_at ------------+----------------------------+---------------------------- 1033498682 | 2021-02-10 21:19:28.377342 | 2021-02-10 05:16:38.259334 1033498689 | 2021-02-16 06:02:34.481795 | 2021-02-19 06:21:35.591053 1033498684 | 2021-02-15 10:05:29.429805 | 2021-02-19 07:55:34.359815 1033498703 | 2021-02-22 05:19:27.567242 | 2021-02-22 05:19:27.729664 1033498704 | 2021-02-22 05:26:57.909896 | 2021-02-22 05:26:57.922758 1033498681 | 2021-02-09 01:04:37.932581 | 2021-02-09 01:04:37.932581 1033498649 | 2021-01-28 08:00:30.830522 | 2021-02-14 06:56:01.74118 1033498698 | 2021-02-16 06:19:37.667765 | 2021-02-17 05:04:01.551797 1033498696 | 2021-02-16 06:19:19.166006 | 2021-02-17 05:04:04.504286 1033498695 | 2021-02-16 06:19:04.007454 | 2021-02-17 05:05:13.466765 1033498694 | 2021-02-16 06:18:18.464509 | 2021-02-17 05:05:14.955893 1033498693 | 2021-02-16 06:18:06.320066 | 2021-02-17 05:05:15.903362 1033498691 | 2021-02-10 21:03:00.05267 | 2021-02-10 21:03:00.05267 1033498690 | 2021-02-13 21:03:00.05267 | 2021-02-13 21:03:00.05267