問題タブ [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.

0 投票する
6 に答える
18392 参照

ruby-on-rails - Rails移行で列を削除すると、列に関連付けられたインデックスが削除されます

Rails 2 では、Rails 移行で列を削除すると、列に関連付けられているインデックスも変更/削除されますか? そうでない場合、代わりに各インデックスを手動で変更/削除する必要がある場合は、代わりに自動化すべきではありませんか?

ありがとう(Rails初心者から)

0 投票する
1 に答える
5316 参照

ruby-on-rails - rails3 移行で「PGError: エラー: 現在のトランザクションが中止されました」

私は Rails 3.0.9 と Ruby 1.9.2 (p290) を使用しています。Postgresql 9.0.4 と 'pg' gem v0.11.0 を使用

問題は :

条件付きで列の値を変更するだけで、非常に簡単な移行ができました。

すべてのリクエストは、私の erb コンソールと pgAdmin SQL のコンソールでも完全に機能しますが、移行を実行すると次のように表示されます。

アイデアとして誰か...

エラー メッセージ スタックの大部分は次のとおりです。

== MigrateClosets: 移行中 ============================================ ==== レーキが中止されました! エラーが発生しました。これ以降の移行はすべてキャンセルされました:

0 投票する
1 に答える
898 参照

ruby-on-rails - Railsテストデータベースでmysql関数を作成するには?

Rails アプリ用に Mysql 関数を作成し、手動でデータベースに追加しました。Rails UNIT テストを使用して関数をテストしたい場合、以下のようなエラーが発生します

テスト スイートから、またはテスト実行の開始時に関数を追加する方法は?

よろしくお願いします。

0 投票する
3 に答える
413 参照

ruby-on-rails - Railsオブザーバー、プラグイン、移行は競争に参加していますが、誰が勝ちますか?

Railsアプリケーションに2人のオブザーバーを追加しました。これで、移行を最初から実行すると、テーブルが存在しないというエラーが表示されます(まあ、まだ移行していません)。column_namesを要求するモデルのプラグインがロードされているため、エラーがスローされます。

application.rbのオブザーバー行をコメントアウトしてもエラーがスローされないため、オブザーバーがモデルのロードを引き起こしていると想定しています。

オブザーバーとモデルをロードせずに移行を実行するにはどうすればよいですか?

また

移行の実行時にエラーをスローしない方法でプラグインのcolumn_namesを要求するにはどうすればよいですか?

0 投票する
1 に答える
164 参照

activerecord - ActiveRecord Migrations 複数のデータベース

現在のスキーマ内のいくつかのテーブルを別のデータベースに移動する必要があります。これらのテーブルのバイナリ ログをオフにする必要があり、Mysql では特定のテーブルのバイナリ ログをオフにできないためです。

そのため、同じプロジェクト内の 2 つの異なるスキーマで移行を実行できるかどうか疑問に思っていました。

0 投票する
21 に答える
104757 参照

ruby-on-rails - タイムスタンプを既存のテーブルに追加する

タイムスタンプ ( created_at& updated_at) を既存のテーブルに追加する必要があります。次のコードを試しましたが、うまくいきませんでした。

0 投票する
4 に答える
7584 参照

ruby-on-rails - 移行にシーケンスを追加してモデルで使用するにはどうすればよいですか?

Customer通常の主キーとカスタムの「顧客番号」を格納するための別の列を持つ「」モデルが必要です。さらに、データベースでデフォルトの顧客番号を処理する必要があります。シーケンスを定義することがそれを行うための最良の方法だと思います。私はPostgreSQLを使用しています。私の移行を見てください:

シーケンスを追加するためのより良い「レールのような」アプローチを知っているなら、私に知らせてください。

今、私が次のようなことをすると

フィールドcustomer_noには、シーケンスの次の値(1002である必要があります)が事前に入力されていません。

シーケンスを統合する良い方法を知っていますか?または、良いプラグインはありますか?すべての答えに乾杯!

0 投票する
2 に答える
2517 参照

mysql - Railsの移行:動的コードを使用したupdate_allは可能ですか?

テーブルに新しいフィールドを追加したいのですが。

ユーザーモデルの新しい「secret_code」フィールドは、Digest :: SHA1.hexdigest([Time.now、rand] .join)[1..12]と同じである必要があります。

私がやろうとしているのは、フィールドをテーブルに追加し、既存のユーザーに(一種の)一意の「secret_code」を追加する移行を生成することです。

問題は、この移行によって既存のすべてのユーザーに同じシークレットコードが入力されることです。

1つの解決策は、update_allを使用せず、ループを実行してすべてのユーザーをフェッチし、各ユーザーに更新を送信することですが、この場合、移行は非常に遅くなります。

「一意の」ランダムな値をupdate_allメソッドに送信する方法はありますか?

ありがとう、アウグスト

0 投票する
2 に答える
1189 参照

ruby-on-rails-3.1 - Ruby on Rails 3 チュートリアルのバグ 13 章

Rails 3 チュートリアルの「サンプル アプリケーション」を rails 3.1 にアップデートしました。サイトを使用していて、ログインしているユーザーが別のユーザーをフォロー/フォロー解除しようとすると、ログから次のメッセージが表示されることを除いて、すべてがスムーズに進みました。

その関連付けを作成するのは初めてなので、操作は機能するはずです。そのエラーの後、ユーザーに戻るためにサーバーを再起動する必要があります。そうしないと、サーバーはスローを続けます。サンプルは次のとおりです。

したがって、再起動後にユーザーに戻ると、とにかくレコードが作成されていることがわかります。しかし、そのリレーションを削除しようとすると、そのログ ファイルから次のエラーが表示されます。

繰り返しますが、ユーザーのページに戻ると、関係が削除されていることがわかります。理由もなく例外がスローされたかのように見えます。実際、following/follower 関係を rspec-test すると、すべてが正しく機能します。さらに、rails 3.0 を使用する sample_app のバージョンは完全に動作します。

Rails 3.1 のコンテキストで gem の 1 つにバグがある可能性はありますか? 役立つ場合に備えて、私のGemfileのリストを次に示します。

前もって感謝します、

0 投票する
2 に答える
253 参照

ruby-on-rails - Rails/MySql 移行の統合

MySql DB で Rails アプリを実行しています。

移行を統合する方法はありますか? 例えば:

と呼ばれる非常に大きなテーブルがあり、そのテーブルにmembers列を追加する移行を作成しname、後で別のフィールドaddressを追加してフィールドにインデックスを追加する別の移行を作成するとしaddressます。

今すぐ移行を実行すると、テーブルが 3 回変更されます: add name、 add address、および add index 。そのたびに、alter table コマンドは実際に新しいテーブルを作成し、すべてのデータをそこにコピーして、古いテーブルを削除します。

私の場合、membersテーブルは非常に大きく、1,000 万を超えるレコードがあるため、各変更には数時間かかります。

変更を 1 つの変更に統合する方法はありますか?