問題タブ [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 - Railsの移行を現在のRAILS_ENVを条件とする方法は?
現在のRAILS_ENVを条件としてRailsの移行をどのように行いますか?
具体的には、次のことを行います。
- ヘッドオブマスターへの移行を確認する
- ステージングインスタンスでのみ移行を実行します
これを行うと、ステージング環境でのみ必要なデータベースの更新を(移行を介して)実行できるようになります。例としては、テスト目的で特定のアカウントまたはアカウントのクラスの機能をアクティブ化する場合があります。
mysql - アプリケーションからの移行の作成
Railsアプリケーションから列を追加するための移行を作成したい(を介してではなくrails g migration xxxx
)、移行の作成中に、後で可能なダウン操作のために移行のためにバージョン番号を保存したい。
シナリオは、一般化されたテーブルとそのフィールドを持つアプリケーションを持っているということです。アプリケーションは、複数の顧客に展開できます。テーブルにカスタム フィールドを定義する方法を提供したいと考えています。ユーザーが table_name、field_name、data_type などの目的のデータを選択/入力したら、新しい移行を作成してフィールドを追加し、バージョン番号をデータベースのどこかに保存します。このバージョン番号はmigrate:down
、ユーザーがフィールドを削除する場合に使用されます。
これよりも良いアプローチはありますか?
ruby-on-rails - Ruby on Rails - 問題の ActiveRecord、移行、および同じテーブルへの 2 つの列
さて、私が持っているのは、「人」の履歴を追跡するテーブルです。これは、人(ユーザー)、ハンドラー(ユーザー)、前のステータス(JobApplicationStatus)、後のステータス(JobApplicationStatus)を記録します。
今、私の頭の中で、これはそのようなテーブルに変換されます:
移行を試みましたが、うまくいきましたが、正しく機能していません。
次のようなものを使用したいので:
これが私の移行です
end
def self.down drop_table :user_application_histories end end
そして、私のモデルは失敗すると思います
ruby-on-rails - Rails モデルの関係と移行
いくつかのモデルとそれらの間の関係シップを持つレールアプリを構築するときに、理解しようとしている問題があります...
モデル グループ、モデル ユーザー、モデル カーなどの基本的な例を挙げると、
これらのリレーションシップ ステートメントは、次の関数を自動的に作成しますか。
- グループ.ユーザー
- ユーザー・グループ
- ユーザー.車
- 車のユーザー
移行で「参照」を作成する必要がある場合があるようですが (User in Car テーブルへの参照を追加するなど)、これは常に必要ですか? この場合、移行を作成することと、モデルに関係ステートメントを追加することの違いは何ですか? これが同じ目的で使用されていると感じることがあります。
ご協力ありがとうございました。
よろしく、
リュック
ruby-on-rails-3 - 新しい列を追加するための rails3 migration は値をテーブルに保存しません
そこで、次の移行を作成しました。
ただし、ビュー内のさまざまな erb ファイルを変更した後、edit.html.erb に入力された値はデータベースに保存されません。
* SQLite3 を手動で起動してテーブルを選択し、列が作成されていることを確認できますが、値が入力されていません。また、コントローラーがクエリを実行して正しく表示する新しい列に手動で番号を更新または挿入することもできます。
フレームワークの更新/保存の何が問題なのかについて何か提案はありますか??
-ダニエル
ruby-on-rails - 移行を使用して、2つの関連するインスタンスを対応するテーブルに挿入するにはどうすればよいですか?
私は2つのActiveRecodeモデル、CarとUserを持っています。これには、多対1の関連付けがあります。
また、データベースには、carsとusersの2つのテーブルがあります。usersテーブルには属性car_idがあります
carインスタンスをcarsテーブルに挿入する移行を行いたいのですが、その間に、carインスタンスと関連付けられてusersテーブルに挿入されるユーザーインスタンスが作成されます。移行でこれを行う方法は?
これは、この移行を実行することにより、carインスタンスとそれに関連するユーザーインスタンスの両方がデータベースの対応するテーブルに保存されます。
Rails3を使用しています。
ruby-on-rails - 移行の実行では、最初に「config/initializers/」の下の rb ファイルが実行されますか?
「rake db:migrate」を実行して最新の移行を実行すると、「config/initializers/」の下のファイルが最初に実行されるようになりますか?
せめて、「rails generate migration XXXX」コマンドでマイグレーションを作成すると、「 config/initializers/」以下の ruby ファイルが先に実行されるのですが…なので、イニシャライザファイルがすべて実行されるようになっているのか知りたいです。移行を実行する前に?
ruby-on-rails - Rails 3 アプリケーションでこの競合状況を解消するにはどうすればよいですか?
config/initializers/の下に、データベースからデフォルトの" car " インスタンスの ID をロードする1 つの ruby ファイルがあります。したがって、アプリケーションの起動後、アプリケーションはこのデフォルトの車の ID を直接使用できます。
しかし、最初にこのデフォルトの車をデータベースに挿入する必要があるため、デフォルトの車をデータベースの Cars テーブルに保存するには、レーキ(シード) タスクまたはデータベースの移行が必要です。
紛争がやってくる!rake タスクまたはマイグレーションを実行してインスタンスをデータベースに挿入すると、初期化ファイルは常に実行前に最初に実行されます。つまり、「 config/initializers/ 」の下の ruby ファイルはデフォルトの車のnil id を取得します。まだデータベースに保存されていません。
では、この対立を解消するにはどうすればよいでしょうか。(その初期化ファイルを持つ目的は、デフォルトの車の ID を一度だけロードすることです) デフォルトの車の ID を一度だけロードする他の方法はありますか?
- - - - - - -編集 - - - - -
初期化子の下のコード:
sql - スキーマから Rails マイグレーションを生成する
既存のスキーマで動作する新しい Rails アプリケーションを作成しています。スキーマ SQL が与えられましたが、Rails 移行を作成して、開発中のデータベースにデータを入力したいと考えています。スキーマはそれほど複雑ではなく、約 20 個のテーブルがありますが、移行を手動で作成して時間を無駄にしたり、タイプミスのリスクを冒したりしたくありません。
スキーマの SQL を指定して Rails マイグレーションを生成する方法はありますか?