2016-07-28 17 views
1

私は教義多対多SQLSTATE [HY000]:一般的なエラー:1005がテーブルを作成することはできません(エラー番号:150)

/** 
* @package Entity 
* @ORM\Entity 
* @ORM\Table(name="r_country") 
*/ 

class RCountry { 
/** 
* @ORM\Column(type="string", length=2) 
* @ORM\Id 
*/ 
protected $id; 

... 

    /** 
* 
* @ORM\ManyToMany(targetEntity="RLanguage") 
* @ORM\JoinTable(name="prohibited_language_display", 
*  joinColumns={@ORM\JoinColumn(name="country_id", referencedColumnName="id", onDelete="CASCADE")}, 
*  inverseJoinColumns={@ORM\JoinColumn(name="language_id", referencedColumnName="id", onDelete="CASCADE")} 
*  ) 
* 
*/ 
protected $prohibitedLanguageDisplay; 

... 

} 

/** 
* @package Entity 
* @ORM\Entity 
* @ORM\Table(name="r_language") 
*/ 
class RLanguage 
{ 
    /** 
    * @ORM\Column(type="string", length=20) 
    * @ORM\Id 
    * 
    */ 
    protected $id; 
... 
} 

に問題がある、私は教義と多対多の関係をやろうとしているが、ときに私よそれは私がしようと試みてきた

CREATE TABLE prohibited_language_google (country_id VARCHAR(2) NOT NULL, language_id VARCHAR(20) NOT NULL, INDEX IDX_77B02D13F92F3E70 (country_id), INDEX IDX_77B02D1382F1BAF4 (language_id), PRIMARY KEY(country_id, language_id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB; ALTER TABLE prohibited_language_display ADD CONSTRAINT FK_77B02D13F92F3E70 FOREIGN KEY (country_id) REFERENCES r_country (id) ON DELETE CASCADE; ALTER TABLE prohibited_language_google ADD CONSTRAINT FK_77B02D1382F1BAF4 FOREIGN KEY (language_id) REFERENCES r_language (id) ON DELETE CASCADE;

はデ・データベースおよびCをドロップ取得

[Doctrine\DBAL\Exception\DriverException]
An exception occurred while executing 'ALTER TABLE prohibited_language_display ADD CONSTRAINT FK_77B02D13F92F3E70 FOREIGN KEY (country_id) REFERENCES r_country (id) ON DELETE CASCADE':
SQLSTATE[HY000]: General error: 1005 Can't create table 'database.#sql-498_8797' (errno: 150)

                          [Doctrine\DBAL\Driver\PDOException]         

SQLSTATE[HY000]: General error: 1005 Can't create table 'database.#sql-498_8797' (errno: 150)

                          [PDOException]               

SQLSTATE[HY000]: General error: 1005 Can't create table 'database.#sql-498_8797' (errno: 150)

これは番目のダンプsqlですエラーに発火するアップデートを行います教義と一緒に新しいものをreateしてください。それは大丈夫ですが、私はちょうど更新をしたいのですが、私のデータベースのすべてのデータが失われてしまいます。

私を助けることができる人はいますか?問題はDoctrineは照合utf_unicode_ciでテーブルを作成するスクリプトを生成していることだった

答えて

1

、私はアプリ/ config.yml

doctrine.dbal.default_table_options.collate: "utf8_general_ci" 
で私doctrineconfigurationにこれを追加しなければならなかったことを変更するために utf8_general_ciようにそれを変更しました
関連する問題