Mysql
 sql >> Base de données >  >> RDS >> Mysql

Rails 4 Problèmes et erreurs de clé primaire MySQL bigInt

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é.