AWSでrailsアプリ開発しているんだが

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アプリ内に初期化機能つくる
という感じかしら

コメント

タイトルとURLをコピーしました