問題タブ [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.
ruby-on-rails - rake:dbmigrateコマンドを実行すると「初期化されていない定数CreateArticles」というエラーが表示されます
モデルルビースクリプトを作成しました/モデル記事を生成します(単純なenuff)
移行ファイルcreate_articles.rbは次のとおりです。
rake:dbmigrateコマンドを実行すると、rakeabortedというエラーが表示されます。「初期化されていない定数CreateArticles。」
このエラーが発生し続ける理由を誰かが知っていますか?
ruby-on-rails - Rails の主キー列に自動インクリメントを追加
誤って、テーブルの id フィールドから自動インクリメント オプションを削除してしまいました。移行を通じて自動インクリメントのオプションを再挿入する方法を誰か教えてもらえますか?
ruby-on-rails - Rails: 不可逆的な移行は悪いことですか?
移行の self.down メソッドで ActiveRecord::IrreversibleMigration 例外を発生させることが許容されるのはいつですか? 移行の逆を実際に実装するために、いつ努力する必要がありますか?
mysql - 失敗した Rails 移行のロールバック
失敗したレール移行をどのようにロールバックしますか? 失敗した移行を元に戻すことができると思いrake db:rollback
ますが、いいえ、以前の移行をロールバックします (失敗した移行から 1 を引いた値)。そしてrake db:migrate:down VERSION=myfailedmigration
、どちらも機能しません。私はこれに数回遭遇しましたが、非常にイライラしています。問題を再現するために作成した簡単なテストを次に示します。
結果:
わかりました、ロールバックしましょう:
は?これは、失敗した移行ではなく、SimpleTest の前の最後の移行でした。(そして、移行の出力にバージョン番号が含まれていればいいのですが。)
それでは、失敗した移行 SimpleTest のダウンを実行してみましょう。
何も起こらず、出力もありません。しかし、とにかく移行を実行したのでしょうか? それでは、SimpleTest 移行の構文エラーを修正して、もう一度実行してみましょう。
いいえ。明らかに、migrate:down は機能しませんでした。失敗しているのではなく、実行していないだけです。
手動でデータベースにアクセスして削除し、テストを実行する以外に、その重複テーブルを取り除く方法はありません。それよりも良い方法があるはずです。
ruby-on-rails - Rails の移行: 列のデフォルト設定を元に戻す
次の例のように、列のデフォルト設定を設定するRailsでの移行があるという問題があります。
後の移行でそのデフォルト設定を削除したいとします。Rails 移行を使用してそれを行うにはどうすればよいですか?
私の現在の回避策は、次のように、レール移行でカスタム sql コマンドを実行することです。
しかし、基礎となるデータベースがこのコマンドをどのように解釈しているかに依存しているため、このアプローチは好きではありません。データベースが変更された場合、このクエリは機能しなくなり、移行が中断される可能性があります。それで、レールの列のデフォルト設定の取り消しを表現する方法はありますか?
ruby-on-rails - レールで保留中の移行を表示する
Rails アプリで保留中の移行を表示する rake タスクはありますか?
ruby-on-rails - 同じマシン上の異なるブランチの Rails Migration の管理
勤めている会社でワンマンバンドをやっています。社内で使用する Rails アプリケーションを開発しています。プロジェクトの開始以来、私はソース管理に SVN を使用し、すべてではありませんがほとんどの開発をトランクで行いました。ときどき、非常に重要な変更を行う必要がある場合、ブランチを作成し、変更が完了したらマージして戻します。すべて非常に典型的です。
ただし、私が行わなければならなかったこれらの「重要な変更」のいずれも、データベースの移行に影響を与えていません。それらは常にビュー/コントローラーのものでした。
この状況では、1 つの開発ボックスを使用して、保持するか保持しないかを問わず、移行やさまざまなデータベースの変更をどのように操作すればよいでしょうか? ブランチが機能しない場合に、ブランチを破棄する前に、すべての移行をブランチの先頭に戻すことを覚えておく必要はありません。
app_branch
(の代わりに)特別な開発環境とデータベースをセットアップすることを検討しましapp_development
たが、それは実験的開発が依存しがちな「簡単な分岐」の概念に強く反対するようです。
この状況のベスト プラクティスはありますか? この状況で他の人は何をしていますか?
ruby-on-rails - Rails移行でデータベースタイプを確認するにはどうすればよいですか?
次の移行があり、環境に関連する現在のデータベースがmysqlデータベースであるかどうかを確認できるようにしたいと思います。mysqlの場合は、データベースに固有のSQLを実行したいと思います。
どうすればこれを行うことができますか?
ruby-on-rails - RubyonRailsのvarchar移行に関する質問
「note」列を含む新しいテーブルを作成しました。デフォルトはvarchar(255)だと思いますが、この列をフィールドではなくテキスト領域にし、より多くのデータを許可したいと思います。ActiveRecord :: Migrationファイルでこの変更を行うことを想像していますが、形式については興味があります。たとえば、varchar(255)をvarchar(1000)に変更するだけですか?(もしそうなら、フォーマットは何ですか?
それは正しいフォーマットですか?さらに、入力フィールドを複数の行にする方法を教えてください。これが簡単なことなら申し訳ありませんが、私はプログラミングとRoRに不慣れです。ありがとう。
mysql - rails db migrationの実行後にmysqlにフィールドがありません
私はレールの移行を持っています:
「t.int :sec_code」行に注目してください。正常に実行されたようです:
しかし、「sec_code」列は作成されません:
なぜ sec_code 列が作成されないのですか? エラーが発生する必要があるようです...