- 1 : 2022/04/20(水) 00:47:25.107 ID:SF4aqSTD0
-
beanstalkで作った環境で、データベースをリセットしたいんだけど上手くいかなくて泣きそう
DBのテーブル構成はそのままでレコードだけ初期化したいrails db:migrate:reset しようとしたら、EC2からのセッションがあるからテーブルをdropできませんってエラーになる
ポスグレにログインしてセッションを切るコマンドを打ってもEC2は即新しいセッションでアクセス復活してくるからどうしようもない
伝わるかなこの状況、助けてクレメンス - 2 : 2022/04/20(水) 00:48:51.780 ID:/cDJJFxb0
-
よく分からんけどEC2落とせば良いんじゃね
- 3 : 2022/04/20(水) 00:53:38.658 ID:SF4aqSTD0
-
>>2
eb sshっていうコマンドでEC2にログインして、そこからrails db:migrate:resetでリセットしようとしてた
なのでEC2を落とすとログインできなくなるというジレンマもしかしてEC2落としてからRDSというかポスグレに直でログインすればいいのかな?
やったことないけど - 4 : 2022/04/20(水) 00:55:07.749 ID:8f3ReZFc0
-
テーブル構成はそのままでレコードだけ初期化したいのにdropしようとしてるの?
- 6 : 2022/04/20(水) 00:57:24.655 ID:SF4aqSTD0
-
>>4
正確に言うといったんdropしてからマイグレーションし直して初期化するというのをやりたい - 5 : 2022/04/20(水) 00:55:47.422 ID:SqY2vJHKr
-
railsしらんけどpsqlから入って直接SQLたたいちゃいかんの?
- 8 : 2022/04/20(水) 01:02:51.759 ID:SF4aqSTD0
-
>>5
それでも大丈夫だと思う
ただ、どちらにしろテーブルをdropするときに「今EC2からアクセスあるからdropできないよ!」ってエラーになる
そしてこのアクセスが切れなくて困ってる - 10 : 2022/04/20(水) 01:06:01.864 ID:SqY2vJHKr
-
>>8
そりゃテーブル参照中にテーブル削除は無理だって - 14 : 2022/04/20(水) 01:12:46.712 ID:SF4aqSTD0
-
>>10
ですよね、、 - 7 : 2022/04/20(水) 00:59:29.365 ID:SqY2vJHKr
-
最初までロールバックしてからpsqlでデータ主導削除からのmigrateじゃいかん?
- 12 : 2022/04/20(水) 01:08:33.997 ID:SF4aqSTD0
-
>>7
最初までロールバックという発想は無かった、試してみる
そしてデータ主導削除なんていう概念があるのも知らなかった、そんなのあるんだ - 9 : 2022/04/20(水) 01:04:59.811 ID:BLcbdK1Q0
-
素直にbeanstalkもRDSも全部消して再デプロイした方が早くね?
- 13 : 2022/04/20(水) 01:11:10.165 ID:SF4aqSTD0
-
>>9
実際そうよね…今日丸一日格闘してたけど結局それが良い気がしてきている
AWS全然慣れてないから消すのが怖くてさ。。へへ。。。 - 16 : 2022/04/20(水) 01:15:31.042 ID:BLcbdK1Q0
-
>>13
AWSなんざ作って壊して消してを繰り返してナンボだぞ - 11 : 2022/04/20(水) 01:07:38.553 ID:SqY2vJHKr
-
dropだと構造も消えるから
データだけ消したいなら
delete * from <table>; - 17 : 2022/04/20(水) 01:17:12.156 ID:SF4aqSTD0
-
>>11
なるほどこれでもいいのかも
rails:db〜的なコマンドを使う発想しかなかった - 19 : 2022/04/20(水) 01:18:55.329 ID:BLcbdK1Q0
-
>>17
データだけならそれで消えるけどserialとかのシーケンス値はそのままになるがそれでいいのか? - 15 : 2022/04/20(水) 01:12:56.816 ID:/cDJJFxb0
-
AWSからのセッションがある理由は考えたほうがいいんじゃね?
当然自セッションじゃないんでそ? - 20 : 2022/04/20(水) 01:21:15.053 ID:SF4aqSTD0
-
>>15
確かに
当然自セッションではないんだけど
単純にrailsアプリがDBを参照してるのでEC2からアクセスがあるということになるのかなーとぼんやり考えてるだけだった - 18 : 2022/04/20(水) 01:18:53.543 ID:/cDJJFxb0
-
それでいいんかい
じゃあtruncate使いなさいdelete *は手癖が悪い - 21 : 2022/04/20(水) 01:22:20.067 ID:XMKQGtRW0
-
>>18
だね
インデックスカウントが戻らないからdelete良くない - 22 : 2022/04/20(水) 01:23:56.504 ID:SF4aqSTD0
-
>>18
いや本当にそれでいいかどうかは正直わからない
再migrationの方が正確ではあるはず
truncateか、承知いたしました - 23 : 2022/04/20(水) 01:25:30.442 ID:/cDJJFxb0
-
まぁ正直Railsとか一ミリも分からんから大した意見が言えなくてすまんな
- 24 : 2022/04/20(水) 01:25:55.773 ID:XMKQGtRW0
-
マイグレーションテーブルの内容削除すれば初期状態になる
- 27 : 2022/04/20(水) 01:31:23.308 ID:SF4aqSTD0
-
>>24
マイグレーションテーブルって聞き馴染みのない単語だったけどマイグレーションファイルそのものを記録するテーブルなのか
ググるとlaravelの情報が多い - 28 : 2022/04/20(水) 01:33:00.485 ID:XMKQGtRW0
-
>>27
マイグレーションテーブルがあるからrevertできる
railsでどうなってるのかわからんけど - 30 : 2022/04/20(水) 01:35:31.133 ID:SF4aqSTD0
-
>>28
なるほどなるほど
勉強になる - 25 : 2022/04/20(水) 01:26:48.443 ID:BLcbdK1Q0
-
いまいち何したいのかわからんけどどうせならアプリにデータ初期化機能追加すればいいんじゃね
- 29 : 2022/04/20(水) 01:34:28.038 ID:SF4aqSTD0
-
>>25
アプリ内に初期化する機能入れちゃうのはマジでいいかもしれない!その発想はなかった - 26 : 2022/04/20(水) 01:26:55.682 ID:XMKQGtRW0
-
俺もrailsどころかrubyも触ったことないから薄いことしか言えんで
- 31 : 2022/04/20(水) 01:39:25.204 ID:SF4aqSTD0
-
みなさんの意見をまとめると
・環境ごとぶっ壊して作り直す
・EC2を停止させる->何らかの方法でDBにログインしてdrop->EC2起動してmigrate
・dropしないでtrincateでレコード消す
・railsアプリ内に初期化機能つくる
という感じかしら
コメント