PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Проблеми при настройката на персонализиран първичен ключ при миграция на Rails 4

Разгледайте този отговор. Опитайте да execute "ALTER TABLE shareholders ADD PRIMARY KEY (uid);" без да посочва параметъра primary_key в блока create_table.

Предлагам да напишете миграцията си така (за да можете да връщате обратно нормално):

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: Има естествен начин (намерен тук), но само с тип 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 11

  2. docker postgres с първоначални данни не се запазва при комитации

  3. Как да нулирате последователността в postgres и да попълните колоната за идентификатор с нови данни?

  4. PHP и Postgres:улавяне на грешки?

  5. 3 начина за изброяване на всички съхранени процедури в PostgreSQL база данни