sql >> データベース >  >> RDS >> PostgreSQL

Rails4の移行でカスタム主キーを設定する際の問題

    この答えを見てください。 execute "ALTER TABLE shareholders ADD PRIMARY KEY (uid);" create_tableブロックでprimary_keyパラメータを指定せずに。

    移行を次のように作成することをお勧めします(通常どおりロールバックできるようにするため):

    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. LinuxにPythonパッケージをインストールして、すでに機能しているPostgreSQL 13 plpython3u拡張機能で検出されるようにするにはどうすればよいですか?

    2. 同じ値のブロックに属する値を分離せずに、いくつかの一意の値を取得します

    3. エラー1130(HY000)を修正する方法:ホストはこのMySQLサーバーに接続できません

    4. SQLServerで「COMMITTRANSACTIONリクエストに対応するBEGINTRANSACTIONがありません」を修正する方法