AWSでrailsアプリ開発しているんだが
■ このスレッドは過去ログ倉庫に格納されています
beanstalkで作った環境で、データベースをリセットしたいんだけど上手くいかなくて泣きそう
DBのテーブル構成はそのままでレコードだけ初期化したい
rails db:migrate:reset しようとしたら、EC2からのセッションがあるからテーブルをdropできませんってエラーになる
ポスグレにログインしてセッションを切るコマンドを打ってもEC2は即新しいセッションでアクセス復活してくるからどうしようもない
伝わるかなこの状況、助けてクレメンス >>2
eb sshっていうコマンドでEC2にログインして、そこからrails db:migrate:resetでリセットしようとしてた
なのでEC2を落とすとログインできなくなるというジレンマ
もしかしてEC2落としてからRDSというかポスグレに直でログインすればいいのかな?
やったことないけど テーブル構成はそのままでレコードだけ初期化したいのにdropしようとしてるの? railsしらんけどpsqlから入って直接SQLたたいちゃいかんの? >>4
正確に言うといったんdropしてからマイグレーションし直して初期化するというのをやりたい 最初までロールバックしてからpsqlでデータ主導削除からのmigrateじゃいかん? >>5
それでも大丈夫だと思う
ただ、どちらにしろテーブルをdropするときに「今EC2からアクセスあるからdropできないよ!」ってエラーになる
そしてこのアクセスが切れなくて困ってる 素直にbeanstalkもRDSも全部消して再デプロイした方が早くね? >>8
そりゃテーブル参照中にテーブル削除は無理だって dropだと構造も消えるから
データだけ消したいなら
delete * from <table>; >>7
最初までロールバックという発想は無かった、試してみる
そしてデータ主導削除なんていう概念があるのも知らなかった、そんなのあるんだ >>9
実際そうよね…今日丸一日格闘してたけど結局それが良い気がしてきている
AWS全然慣れてないから消すのが怖くてさ。。へへ。。。 AWSからのセッションがある理由は考えたほうがいいんじゃね?
当然自セッションじゃないんでそ? >>13
AWSなんざ作って壊して消してを繰り返してナンボだぞ >>11
なるほどこれでもいいのかも
rails:db〜的なコマンドを使う発想しかなかった それでいいんかい
じゃあtruncate使いなさいdelete *は手癖が悪い >>17
データだけならそれで消えるけどserialとかのシーケンス値はそのままになるがそれでいいのか? >>15
確かに
当然自セッションではないんだけど
単純にrailsアプリがDBを参照してるのでEC2からアクセスがあるということになるのかなーとぼんやり考えてるだけだった >>18
だね
インデックスカウントが戻らないからdelete良くない >>18
いや本当にそれでいいかどうかは正直わからない
再migrationの方が正確ではあるはず
truncateか、承知いたしました まぁ正直Railsとか一ミリも分からんから大した意見が言えなくてすまんな マイグレーションテーブルの内容削除すれば初期状態になる いまいち何したいのかわからんけどどうせならアプリにデータ初期化機能追加すればいいんじゃね 俺もrailsどころかrubyも触ったことないから薄いことしか言えんで >>24
マイグレーションテーブルって聞き馴染みのない単語だったけどマイグレーションファイルそのものを記録するテーブルなのか
ググるとlaravelの情報が多い >>27
マイグレーションテーブルがあるからrevertできる
railsでどうなってるのかわからんけど >>25
アプリ内に初期化する機能入れちゃうのはマジでいいかもしれない!その発想はなかった みなさんの意見をまとめると
・環境ごとぶっ壊して作り直す
・EC2を停止させる->何らかの方法でDBにログインしてdrop->EC2起動してmigrate
・dropしないでtrincateでレコード消す
・railsアプリ内に初期化機能つくる
という感じかしら 大変勉強になりました
railsわからんとかほんまか?
ありがとう!!!!!!!! ■ このスレッドは過去ログ倉庫に格納されています