PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Masalah pengaturan kunci utama khusus dalam migrasi Rails 4

Lihatlah jawaban ini. Coba execute "ALTER TABLE shareholders ADD PRIMARY KEY (uid);" tanpa menentukan parameter primary_key di blok create_table.

Saya sarankan untuk menulis migrasi Anda seperti ini (agar Anda dapat melakukan rollback secara normal):

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: Ada cara alami (ditemukan di sini), tetapi hanya dengan tipe 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. Skrip shell untuk menjalankan perintah pgsql dalam file

  2. Permintaan SQL untuk menemukan catatan dengan ID tidak di tabel lain

  3. [Video] Kekuatan Pengindeksan di PostgreSQL

  4. Bagaimana menemukan jalur pg_config

  5. Cara Menghitung Pertumbuhan Bulan ke Bulan di PostgreSQL