1

Phinx 移行を使用してテーブルに外部キーを追加しようとしています。私の意図は、テーブル ('sales_order_attachment') を作成し、2 つの外部キーを追加することです。Phinx のドキュメントはあまり多くないので、インターネット上やいじくり回しても (まだ) 答えが見つかりません。ここで何が間違っていますか?移行が指しているテーブルとキーの両方が存在します。

移行:

public function up()
{
    $table = $this->table('sales_order_attachment', array('id' => 'sales_order_attachment_id'));
    $table->addColumn('file_upload_id', 'integer')
        ->addForeignKey('file_upload_id', 'file_upload', 'id');
    $table->addColumn('sales_order_id', 'integer')
        ->addForeignKey('sales_order_id', 'sales_order', 'id')
        ->save();
}

public function down()
{
    $this->table('sales_order_attachment')->drop();
}

エラー:

[PDOException]                                                                                            
SQLSTATE[HY000]: General error: 1005 Can't create table 'table.sales_order_attachment' (errno: 150)  
4

3 に答える 3

1

他の 2 つのテーブルは既に存在しますか?

  • file_upload
  • 販売注文

最初に「sales_order_attachment」テーブルを作成してから、別の手順で外部キーを追加することもできます。

よろしく、

ロブ

于 2015-06-17T07:05:10.523 に答える