mirror of
https://github.com/doctrine/orm.git
synced 2026-03-24 06:52:09 +01:00
DDC-2788: Create Table If Not Exists - doctrine:schema:update #3485
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @doctrinebot on GitHub (Nov 11, 2013).
Originally assigned to: @Ocramius on GitHub.
Jira issue originally created by user jayem:
I am not positive if this issue is in the correct project. Sorry if I placed it in the wrong area.
I was wondering if it would be possible to have the
doctrine:schema:updatecommand updated to useCREATE IF NOT EXISTSfor tables that already exist.For example, here is my setup:
The above code is an example, so the exact column names may not be 100% correct. The import aspect is the join table name. If that table already exists in the database, I will get the following error when I run the
doctrine:schema:update --dump-sqlcommand:{quote}
[Doctrine\DBAL\Schema\SchemaException]The table with the name 'authors_books' already exists.{quote}
This is because it is trying to
CREATE TABLE 'authors*books'and that table is already in the database. Could the command instead useCREATE TABLE IF NOT EXISTS 'authors*books'when "IF NOT EXISTS" is available for the configured database type?Thanks!
@doctrinebot commented on GitHub (May 25, 2015):
Comment created by finalcode:
you can reference this question, http://stackoverflow.com/questions/3220998/check-for-table-existence-before-dropping
@e-onux commented on GitHub (Sep 29, 2016):
Problem is continuing since 2013? We must resolve this issue.
@Ocramius commented on GitHub (Sep 29, 2016):
Didn't notice this issue before. This is a no-go.
If the table exists, yet doctrine fails to recognize that, then there is some sort of issue with the setup.
Doctrine should just produce a
CREATE TABLEand cause a hard failure here. UsingCREATE TABLE IF NOT EXISTS(or equivalent - note that DB2 has no such construct!) just means introducing silent failures everywhere.Closing as
won't fix.@e-onux commented on GitHub (Sep 29, 2016):
https://github.com/doctrine/doctrine2/issues/6016
Issue is continuing. We didn't use many-to-many with latest version of doctrine.
We get this error on three tables like book, author, book_author.
@Ocramius commented on GitHub (Sep 29, 2016):
That's a symptom of a different problem. Fixing it via
IF NOT EXISTSwould just be shotgun surgery. The source problem is that doctrine doesn't see your tables - find out the "why" first :-)@e-onux commented on GitHub (Sep 29, 2016):
Thank you for your fast reply. You are saying this problem is not general, and only related for my codes/tables?
For hours I'm inspecting around /lib/Doctrine/DBAL/Schema/Schema.php
to resolve this.
@Ocramius commented on GitHub (Sep 29, 2016):
If the table exists, yet doctrine still tries to create it, then:
And yes, this requires some manual debugging, sorry :-\
@e-onux commented on GitHub (Sep 29, 2016):
This error only when I using many-to-many relation. I think this was about association mapping engine of doctrine. How do i profile this error on doctrine:schema:update command?
@Ocramius commented on GitHub (Sep 29, 2016):
@e-onux fire up a debugger, and look at what is going on in
cd11723e63/lib/Doctrine/ORM/Tools/SchemaTool.php (L854)