問題タブ [rails-migrations]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 古いアプリから新しいアプリへの再定義された SQL データのインポート
Symfony (マウントに少し悪い趣味を残した) アプリケーションを Rails に書き直す (いくつかの新機能を追加して) ほぼ完了しました。古いアプリケーションから新しい Rails アプリにインポートする必要があるデータがいくらかあります。
問題は、スキーマが大幅に変更され、一部の外部キー値を更新する必要があることです。
データの再定義とインポートに役立つアプリケーションがあるかどうか疑問に思っていますか、それともphpMyAdminを開いてデータベースの編集に時間を費やし、準備されたデータベースでRailsを実行する必要がありますか? (私の意見では、これは仕事をするための最良の方法ではありません)
ruby-on-rails - Railsの移行を使用して列を削除する方法
Railsの移行を通じてデータベーステーブルの列を削除するための構文は何ですか?
ruby-on-rails - 移行に更新ロジックを入れる
いくつかのモデルの設計をリファクタリングしたい状況に何度か遭遇し、最終的に更新ロジックを移行に入れました。ただし、私が理解している限り、これは適切な方法ではありません (特に、移行ではなく展開にスキーマ ファイルを使用することが推奨されているため)。このような問題にどのように対処しますか?
言いたいことを明確にするために、User モデルがあるとします。ユーザーには「通常の」ユーザーと管理者の 2 種類しかないと思っていたので、ユーザーが管理者かどうかを示す単純なブール値フィールドを使用することにしました。
しかし、しばらくして、モデレーターなどの第 3 の種類のユーザーが必要であると考えました。この場合、UserType モデル (および対応する移行) を追加し、ユーザー テーブルから "admin" フラグを削除するための 2 番目の移行を追加します。そして、ここで問題が発生します。「add_user_type_to_users」移行では、管理フラグの値をユーザー タイプにマップする必要があります。さらに、これを行うには、ユーザー タイプが存在する必要があります。つまり、シード ファイルを使用できず、移行でユーザー タイプを作成する必要があります (これも悪い習慣と見なされます)。状況を表す架空のコードを次に示します。
ご覧のとおり、問題のある部分が 2 つあります。最初に、すべての移行を連続して実行する場合に必要な最初のモデルの行作成部分、次に「admin」列を「type_id」列にマップする 2 番目の移行の「更新」部分です。
何かアドバイス?
ruby-on-rails - Rails の外部キー関係
私は Rails の初心者であり、Rails は、テーブルの作成中に移行ファイルのモデル レベルとデータベース レベルで外部キー関係を強制することを読みました。本当に必要なのか、どんなメリットがあるのか
ruby-on-rails - ruby-on-rails の rake db:migrate:down のショートカット
rake db:migrate と同等の移行ダウンを行う簡単な方法があるかどうかを知りたいです (移行アップの場合)。実行する代わりに: rake db:migrate:up VERSION=1, rake db:migrate:up VERSION=2, ... 実行できます: rake db:migrate! しかし、次の場合: rake db:migrate:down VERSION=10, rake db:migrate:down VERSION=..., rake db:migrate:down VERSION=1, ショートカットはありますか?
あなたの助けのためにタンク!
ruby-on-rails - Rolling up Migrations?
As I understand it the point of migrations is so you can revert the database back to a known state during the last stages of development.
Right now I'm still "fleshing" out my first Rails app and I'm wondering if its ok to roll up my migrations into bigger ones rather than dozens of changes.
ruby-on-rails - Railsが日時列に文字列をnullとして保存するのはなぜですか?
検証をテストしているときに、この特異性に遭遇しました。移行は次のように定義されています。
irbで
私の質問は、ActiveRecord が単に :window_end = "not a time" を設定するのではなく、"not a time" を nil と解釈するのはなぜですか? :window_end を int に設定すると、同じ nil への変換が発生します。
これが私にとって問題である理由は、誰かが Time 以外の値を :window_end (または :window_start) 列に保存しようとすると、エラーがスローされるようにしたいのですが、ここではそうではありません。
ありがとう。
ruby-on-rails - Rails の移行 - 古い移行の変更点を探しますか?
mig1 と mig2 の 2 つの移行がある場合、rake db:migrate を実行し、次に mig1 に戻って列のデフォルト値を変更します。rake db:migrate を再度実行すると、この変更は反映されますか? または、その列だけを変更するには、新しい移行を行う必要がありますか?
ruby-on-rails-3 - データベースの移行方法 Rails3 + datamapper
datamapperがrails-3にフックできるようにするdm-rails gemを使用し、足場と移行ファイルを生成し、データベース移行のためにrake db:migrateを実行しましたが、エラーも移行も何も起こりません。 datamapper と rails-3。