Je l'ai corrigé en écrivant la migration avec une exécution SQL comme suit :
class CreateAcctTransactions < ActiveRecord::Migration
def self.up
# create ACCT_TRANSACTIONS table
create_table "acct_transactions", id: false, force: true do |t|
t.integer "id", limit: 8, null: false
t.timestamp "date", null: false
t.text "description", limit: 255
t.decimal "amount", precision: 10, scale: 2, null: false
t.integer "account_id", limit: 8, null: false
t.integer "transaction_type_id", null: false
end
execute "ALTER TABLE acct_transactions ADD PRIMARY KEY (id);"
add_index "acct_transactions", ["account_id"], name: "fk_acct_transactions_accounts1_idx", using: :btree
add_index "acct_transactions", ["date", "id"], name: "BY_DATE", using: :btree
add_index "acct_transactions", ["transaction_type_id"], name: "fk_acct_transactions_transaction_types1_idx", using: :btree
end
def self.down
drop_table :acct_transactions
end
end
Notez l'exécution déclaration @ ligne 12. Pendant que j'y étais, j'ai également changé le champ "date" en un horodatage, ce que je voulais faire à l'origine de toute façon. Ce n'est pas joli et viole la "convention" mais cela fonctionne parfaitement, donc je peux passer à autre chose. Merci d'avoir cherché.