2017-05-12 13 views
0

私はいくつかのデータベースに接続するSymfonyプロジェクトを持っています。しかし、私はそのうちの1つに対してのみALTERアクセス権を持っています。doctrineエンティティを外部SQLデータベースで最新の状態に保ちます

私の教義のエンティティをデータベースと同期させるために、私はdoctrine:schema:update --dump-sqlを実行しなければなりません。

もしdoctrine:schema:update --dump-sqlが私に与えたら ALTER tableName DROP columnName 私はTableNameエンティティに行き、columnNameプロパティを追加します。

doctrine:schema:import初めて動作するようです。すべての.xmlファイルを削除した後でも

私はこれを行うことができます/私はより少ないマニュアルで同期を維持するために使用することができます。

+0

あなたはのWi何を意味していますth *その後、私のエンティティと反対に*コマンドは正確に何ですか?それが最適ではないので、状況への組織的変化に到達する方法はありますか?またはより強固なDB設計をしていますか? – Confidence

+1

@ Confidence私は、データベースからデータを取得するためだけにデータベースへの読み取りアクセス権しか持っていません。私が意味するのは、自分のエンティティと反対の_を意味する_です。彼らが列columnNewを追加する必要がある場合。私のエンティティはまだその列を持っておらず、データベースが同期していないかどうかを調べる唯一の方法は、 'ALTER tableName DROP columnA'を生成する' doctrine:schema:update --dump-sql'です。 。私は私のエンティティにcolumnAを追加する必要があることを知っています。 –

+0

Doctrine Migrationsは、https://github.com/doctrine/migrationsのこれらの変更とhttp://symfony.com/doc/current/bundles/DoctrineMigrationsBundle/indexのバンドルを通過する必要があるようです。 html – Confidence

答えて

0

リバースエンジニアリングを使用してデータベースからエンティティを作るために、この教義ツールで試してみてください。

まず、あなたはこれでXMLメタデータファイルを実行する必要があります。

php bin/console doctrine:mapping:import --force AcmeBlogBundle xml 

その後、からエンティティを作るためにこれを使用しますXMLファイル:

php bin/console doctrine:mapping:convert annotation ./src 
php bin/console doctrine:generate:entities AcmeBlogBundle 

http://symfony.com/doc/current/doctrine/reverse_engineering.html

+0

これは私がそれを自動化するのに最も近いものです。いくつかのプロパティは手動で入力する必要があります。例えば列のデフォルト値 –

関連する問題