に外部キー制約を追加することはできません私はPhalcon(デベロッパーツール2.0.10)で移行を実行しようとしているが、それはおよそERROR: SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint
エラー:SQLSTATE [HY000]:一般的なエラー:1215がPhalcon
私はしましたが文句を保ちますこの先週のマイグレーションを実行してみると、彼らはすべてうまくいきました。私はデータベースを廃止し、mysqlを再インストールし、データベースを再作成しましたが、同じことをやります。
この問題は一般的には外部キーに関連しているようであり、具体的にはそうではありません。特定のモデルについて文句を言うことから始めるので、私はreferences
ステートメントを見逃してしまい、次の外部キー宣言などで停止します。エンジンは問題が
class ModuleTranslationsMigration_100 extends Migration
{
public function morph()
{
$this->morphTable('', array(
...
'references' => array(
new Reference(
'module_translations_ibfk_1',
array(
'referencedSchema' => 'learning',
'referencedTable' => 'modules',
'columns' => array('module_id'),
'referencedColumns' => array('id')
)
),
new Reference(
'module_translations_ibfk_2',
array(
'referencedSchema' => 'learning',
'referencedTable' => 'languages',
'columns' => array('language_id'),
'referencedColumns' => array('id')
)
)
),
...
class LanguagesMigration_100 extends Migration
{
public function morph()
{
$this->morphTable('languages', array(
'columns' => array(
new Column(
'id',
array(
'type' => Column::TYPE_CHAR,
'notNull' => true,
'size' => 2,
'first' => true
)
),
...
class ModulesMigration_100 extends Migration
{
public function morph()
{
$this->morphTable('modules', array(
'columns' => array(
new Column(
'id',
array(
'type' => Column::TYPE_INTEGER,
'unsigned' => true,
'notNull' => true,
'autoIncrement' => true,
'size' => 10,
'first' => true
)
),
...
関連する表のDDL文を入力してください。小さな情報であなたを助けるのはかなり難しい(読んだ:不可能) – Mureinik
@Mureinikは1つを追加しました。問題は、このクラスのreferencesステートメントを削除すると、同じエラーが次のモデルと次のモデルで発生するということです。さらに、マイグレーションは私の同僚のマシン上で実行されるため、構文/モデリングではなくSQL(サーバー)の問題であると思われます。 – blackbird
SQL設定で問題が発生しました。詳細なヘルプについては、SQLシーマをご提供ください。また、ここでこの答えを調べる必要があります:http://stackoverflow.com/questions/15534977/mysql-cannot-add-foreign-key-constraint – yergo