私はorm:schema-tool:create
を実行して最初のテーブルを作成しましたが、すでに存在するテーブルを作成しようとしましたが、スクリプトが実行を停止したため、データベースにいくつかの新しいテーブルを作成する必要があります。相続人は、エラーメッセージは、それが出力:Doctrine - orm:schema-tool:create - すでに存在するテーブルを無視するには?
[Doctrine\ORM\Tools\ToolsException]
Schema-Tool failed with Error 'An exception occurred while executing 'CREATE TABLE autogen_structures (id INT AUTO_
INCREMENT NOT NULL, structure_id INT DEFAULT NULL, INDEX FK_STRUCTURES_TO_AUTOGEN_STRUC (structure_id), PRIMARY KEY
(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB':
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'autogen_structures' already exists' while executing
DDL: CREATE TABLE autogen_structures (id INT AUTO_INCREMENT NOT NULL, structure_id INT DEFAULT NULL, INDEX FK_STRU
CTURES_TO_AUTOGEN_STRUC (structure_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE
= InnoDB
[Doctrine\DBAL\Exception\TableExistsException]
An exception occurred while executing 'CREATE TABLE autogen_structures (id INT AUTO_INCREMENT NOT NULL, structure_i
d INT DEFAULT NULL, INDEX FK_STRUCTURES_TO_AUTOGEN_STRUC (structure_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf
8 COLLATE utf8_unicode_ci ENGINE = InnoDB':
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'autogen_structures' already exists
[Doctrine\DBAL\Driver\PDOException]
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'autogen_structures' already exists
を私はそれが既存のテーブルのすべてのデータを一掃していない、私は前にこの問題を経験していることを、実際にはかなりほっとしてるので、私はそれがあったと仮定していますその問題を引き起こしたorm:schema-tool:update
。テーブルに何千もの行があるデータベースでは、バックアップファイルからデータベースを再作成するのに時間がかかるため、かなり大きな問題です。
新しいテーブルを作成して既存のテーブルを無視する方法はありますか?また、既存のテーブルのスキーマを更新する方法はありますか?
'--force'は強制的にアップデートを実行します。より良い方法は '--force'なしで呼び出すことです。 'orm:schema-tool:update --dump-sql'を実行するとsqlがダンプされ、必要のない、または簡単に更新できない行を削除できます。 –