データベースにテーブルを作成する複数のSQLクエリを含むSQLファイルを実行しているときに問題が発生しています。 dbはDB2です。移行ファイルを作成しました。このファイルでは、sqlファイルを読み込んでそのファイルでSQLクエリを実行します。問題は1つのクエリのみを実行し、そのSQLファイルには1つのテーブルクエリ。railsの移行ファイルを使用してSQLファイルを実行する
コードsnipletは以下の通りですどのようにこの問題を克服するために
任意のアイデア:
enter code here
class CreateTablesForPoject < ActiveRecord::Migration
def change
begin
user = RailsUser.first
rescue => e
fixed_patches = %w(CREATETABLES.sql)
sql = File.read("db/ddl/#{fixed_patches.first}")
statements = sql.split(/;$/)
statements.each do |statement|
execute(statement)
end
end
end
end
注:ファイルの読み取りとクエリの分割は、すべての罰金..ですそれがすべての問題を持っていません移行が実行されてすべての問合せが実行されますが、alter table問合せまたは透過的な表の作成に基づく問合せが失敗すると失敗します。私が感じる問題は、1つのクエリを実行した後にdb接続が切断されるため、テーブルが作成されず、透過テーブル作成のクエリベースが失敗するということです。
あなたはどのようなデバッグ機能を試してみましたか?例えばステートメントへの割り当ての結果は何ですか?その分割文は、あなたが期待しているものを返すのでしょうか? File.readステートメントの場合と同じです。 – margo
@margo:ファイルの読み込みとクエリの分割は問題ありません。問題はありません。 移行はすべてのクエリを実行して実行しますが、alter tableクエリまたは透過テーブルを基にしたクエリ作成に失敗します。 私が感じる問題は、1つのクエリを実行した後にdb接続が切断され、テーブルが作成されず、透過テーブル作成のクエリベースが失敗するということです。 – SRDP