0

Doctrine ORM を使用して Symfony 1.4 をインストールしました。

プラグイン sfDoctrineGuard をインストールしようとしています。ここの指示に従いました: http://www.symfony-project.org/plugins/sfDoctrineGuardPlugin

このステップまではすべて正常に動作します: symfony doctrine:insert-sql

エラーが発生した場合:

SQLSTATE[HY000]: 一般エラー: 1005 テーブル 'kickboxing.#sql-2b5b_a8f' を作成できません (エラー 150) クエリに失敗しました "ALTER TABLE profile ADD CONSTRAINT profile_sf_guard_user_id_sf_guard_user_id FOREIGN KEY (sf_guard_user_id)

いくつかのテーブルを作成したようです:

プロファイル sf_guard_forgot_password sf_guard_group sf_guard_group_permission sf_guard_permission sf_guard_remember_key sf_guard_user sf_guard_user_group sf_guard_user_permission

何か案は?

更新: 私は、これが doctrine/symfony とはまったく関係がないことを発見した後です。問題はmysqlにあるようです。MySQLで上記のalterコマンドを実行しましたが、もちろん同じエラーが発生しました。

参考までに、Debian Squeeze と mysql 5 をインストールしました。

UPDATE2 : 実行時

SHOW INNODB STATUS;

私は得る


最新の外部キー エラー

110927 7:58:35 テーブル _kickboxing/#sql-2b5b_a86 の外部キー制約のエラー: FOREIGN KEY (sf_guard_user_id) REFERENCES sf_guard_user(id): 参照されたテーブルで、参照された列が最初の列として表示されるインデックスが見つからない、またはテーブルと参照されるテーブルの列の型が一致しません。>= InnoDB-4.1.12 で作成されたテーブルでは ENUM および SET の内部ストレージ タイプが変更され、古いテーブルのそのような列は新しいテーブルのそのような列によって参照されないことに注意してください。 正しい外部キーの定義については、 http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.htmlを参照してください。

4

2 に答える 2

1

mySqlの問題のようです。mysql コンソールにログインして実行すると、エラーの完全な (より適切な) 説明を取得できます。

show innodb status

次に、LATEST FOREIGN KEY ERROR を探して、何が問題なのかを把握します。

于 2011-09-27T10:55:16.223 に答える
0

私はSymfony1.4.16を使用しており、sfDoctrineGuardPluginを構成するために、prettyscripts.comに従いましたが、schema.ymlは次のようになります。

注: user_idはinteger(8)であり、sf_guardのid列タイプのサイズです。

sfGuardUserProfile:
  tableName: sf_guard_user_profile
  actAs:        { Timestampable: ~ }
  options:      { collate: utf8_unicode_ci, charset: utf8 }
  columns:
    id:         { type: integer(8), primary: true, autoincrement: true }
    user_id:    { type: integer(8), notnull: true }
    fullname:   { type: string(80) }
    email:      { type: string(100) }
  relations:
    User:
      class: sfGuardUser
      foreign: id
      local: user_id
      type: one
      onDelete: cascade
      foreignType: one
      foreignAlias: Profile
于 2012-01-18T14:41:28.963 に答える