PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Problemy z ustawieniem własnego klucza podstawowego w migracji Rails 4

Spójrz na tę odpowiedź. Spróbuj execute "ALTER TABLE shareholders ADD PRIMARY KEY (uid);" bez określania parametru primary_key w bloku create_table.

Proponuję napisać swoją migrację w ten sposób (abyś mógł normalnie wycofać):

class CreateShareholders < ActiveRecord::Migration
  def up
    create_table :shareholders, id: false do |t|
      t.integer :uid, limit: 8
      t.string :name
      t.integer :shares

      t.timestamps
    end
    execute "ALTER TABLE shareholders ADD PRIMARY KEY (uid);"
  end

  def down
    drop_table :shareholders
  end
end

UPD: Jest naturalny sposób (znajdziesz tutaj), ale tylko z typem int4:

class CreateShareholders < ActiveRecord::Migration
  def change
    create_table :shareholders, id: false do |t|
      t.primary_key :uid
      t.string :name
      t.integer :shares

      t.timestamps
    end    
  end
end


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL zyskuje na popularności:wyniki z Postgres 2018 i trendy 2019

  2. Połącz wiele instrukcji SELECT

  3. nie można utworzyć rozszerzenia bez roli administratora

  4. Jak ustawić limit czasu połączenia w SQLAlchemy?

  5. domyślna strefa czasowa postgres