Complete NB here so please bear with me.
I'm following along on a Pluralsight (online training) and am getting "Table already exists" error. Here are the steps to reproduce.
This is from a fresh app. The initial step is "grails create-app MyAPP"
| Starting dbm-update for database sa @ jdbc:h2:devDb;MVCC=TRUE;LOCK_TIMEOUT=100
00;DB_CLOSE_ON_EXIT=FALSE
| Error 2014-11-05 11:56:01,309 [main] ERROR liquibase - Change Set createCar.g
roovy::1415215848019-1::jgenshle (generated) failed. Error: Error executing SQL
CREATE TABLE car (id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL, version
BIGINT NOT NULL, engine VARCHAR(255) NOT NULL, make VARCHAR(255) NOT NULL, manuf
acturer VARCHAR(255) NOT NULL, model_year VARCHAR(255) NOT NULL, price DOUBLE NO
T NULL, CONSTRAINT carPK PRIMARY KEY (id)): Table "CAR" already exists; SQL stat
ement:
CREATE TABLE car (id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL, version B
IGINT NOT NULL, engine VARCHAR(255) NOT NULL, make VARCHAR(255) NOT NULL, manufa
cturer VARCHAR(255) NOT NULL, model_year VARCHAR(255) NOT NULL, price DOUBLE NOT
NULL, CONSTRAINT carPK PRIMARY KEY (id)) [42101-176]
Message: Error executing SQL CREATE TABLE car (id BIGINT GENERATED BY DEFAULT AS
IDENTITY NOT NULL, version BIGINT NOT NULL, engine VARCHAR(255) NOT NULL, make
VARCHAR(255) NOT NULL, manufacturer VARCHAR(255) NOT NULL, model_year VARCHAR(25
5) NOT NULL, price DOUBLE NOT NULL, CONSTRAINT carPK PRIMARY KEY (id)): Table "C
AR" already exists; SQL statement:
CREATE TABLE car (id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL, version B
IGINT NOT NULL, engine VARCHAR(255) NOT NULL, make VARCHAR(255) NOT NULL, manufa
cturer VARCHAR(255) NOT NULL, model_year VARCHAR(255) NOT NULL, price DOUBLE NOT
NULL, CONSTRAINT carPK PRIMARY KEY (id)) [42101-176]
Line | Method
->> 62 | execute in liquibase.executor.jvm.JdbcExecutor
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 104 | execute in ''
| 1091 | execute . . . . . in liquibase.database.AbstractDatabase
| 1075 | executeStatements in ''
| 317 | execute . . . . . in liquibase.changelog.ChangeSet
| 27 | visit in liquibase.changelog.visitor.UpdateVisitor
| 58 | run . . . . . . . in liquibase.changelog.ChangeLogIterator
| 114 | update in liquibase.Liquibase
| 26 | doCall . . . . . in DbmUpdate$_run_closure1_closure2
| 59 | doCall in _DatabaseMigrationCommon_groovy$_run_closure2_cl
osure11
| 133 | executeInSession in grails.plugin.databasemigration.MigrationUtils
| 51 | doCall in _DatabaseMigrationCommon_groovy$_run_closure2
^ 25 | doCall . . . . . in DbmUpdate$_run_closure1
Caused by JdbcSQLException: Table "CAR" already exists; SQL statement:
CREATE TABLE car (id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL, version B
IGINT NOT NULL, engine VARCHAR(255) NOT NULL, make VARCHAR(255) NOT NULL, manufa
cturer VARCHAR(255) NOT NULL, model_year VARCHAR(255) NOT NULL, price DOUBLE NOT
NULL, CONSTRAINT carPK PRIMARY KEY (id)) [42101-176]
->> 344 | getJdbcSQLException in org.h2.message.DbException
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 178 | get in ''
| 154 | get . . . . . . . in ''
| 110 | update in org.h2.command.ddl.CreateTable
| 79 | update . . . . . in org.h2.command.CommandContainer
| 254 | executeUpdate in org.h2.command.Command
| 186 | executeInternal . in org.h2.jdbc.JdbcStatement
| 160 | execute in ''
| 92 | doInStatement . . in liquibase.executor.jvm.JdbcExecutor$1ExecuteStat
ementCallback
| 55 | execute in liquibase.executor.jvm.JdbcExecutor
| 104 | execute . . . . . in ''
| 1091 | execute in liquibase.database.AbstractDatabase
| 1075 | executeStatements in ''
| 317 | execute in liquibase.changelog.ChangeSet
| 27 | visit . . . . . . in liquibase.changelog.visitor.UpdateVisitor
| 58 | run in liquibase.changelog.ChangeLogIterator
| 114 | update . . . . . in liquibase.Liquibase
| 26 | doCall in DbmUpdate$_run_closure1_closure2
| 59 | doCall . . . . . in _DatabaseMigrationCommon_groovy$_run_closure2_cl
osure11
| 133 | executeInSession in grails.plugin.databasemigration.MigrationUtils
| 51 | doCall . . . . . in _DatabaseMigrationCommon_groovy$_run_closure2
^ 25 | doCall in DbmUpdate$_run_closure1
liquibase.exception.MigrationFailedException: Migration failed for change set cr
eateCar.groovy::1415215848019-1::jgenshle (generated):
Reason: liquibase.exception.DatabaseException: Error executing SQL CREATE T
ABLE car (id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL, version BIGINT NO
T NULL, engine VARCHAR(255) NOT NULL, make VARCHAR(255) NOT NULL, manufacturer V
ARCHAR(255) NOT NULL, model_year VARCHAR(255) NOT NULL, price DOUBLE NOT NULL, C
ONSTRAINT carPK PRIMARY KEY (id)): Table "CAR" already exists; SQL statement:
CREATE TABLE car (id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL, version B
IGINT NOT NULL, engine VARCHAR(255) NOT NULL, make VARCHAR(255) NOT NULL, manufa
cturer VARCHAR(255) NOT NULL, model_year VARCHAR(255) NOT NULL, price DOUBLE NOT
NULL, CONSTRAINT carPK PRIMARY KEY (id)) [42101-176]:
Caused By: Error executing SQL CREATE TABLE car (id BIGINT GENERATED B
Y DEFAULT AS IDENTITY NOT NULL, version BIGINT NOT NULL, engine VARCHAR(255) NOT
NULL, make VARCHAR(255) NOT NULL, manufacturer VARCHAR(255) NOT NULL, model_yea
r VARCHAR(255) NOT NULL, price DOUBLE NOT NULL, CONSTRAINT carPK PRIMARY KEY (id
)): Table "CAR" already exists; SQL statement:
CREATE TABLE car (id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL, version B
IGINT NOT NULL, engine VARCHAR(255) NOT NULL, make VARCHAR(255) NOT NULL, manufa
cturer VARCHAR(255) NOT NULL, model_year VARCHAR(255) NOT NULL, price DOUBLE NOT
NULL, CONSTRAINT carPK PRIMARY KEY (id)) [42101-176]:
Caused By: Table "CAR" already exists; SQL statement:
CREATE TABLE car (id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL, version B
IGINT NOT NULL, engine VARCHAR(255) NOT NULL, make VARCHAR(255) NOT NULL, manufa
cturer VARCHAR(255) NOT NULL, model_year VARCHAR(255) NOT NULL, price DOUBLE NOT
NULL, CONSTRAINT carPK PRIMARY KEY (id)) [42101-176]
at liquibase.changelog.ChangeSet.execute(ChangeSet.java:347)
at liquibase.changelog.visitor.UpdateVisitor.visit(UpdateVisitor.java:27
)
at liquibase.changelog.ChangeLogIterator.run(ChangeLogIterator.java:58)
at liquibase.Liquibase.update(Liquibase.java:114)
at DbmUpdate$_run_closure1_closure2.doCall(DbmUpdate:26)
at _DatabaseMigrationCommon_groovy$_run_closure2_closure11.doCall(_Datab
aseMigrationCommon_groovy:59)
at grails.plugin.databasemigration.MigrationUtils.executeInSession(Migra
tionUtils.groovy:133)
at _DatabaseMigrationCommon_groovy$_run_closure2.doCall(_DatabaseMigrati
onCommon_groovy:51)
at DbmUpdate$_run_closure1.doCall(DbmUpdate:25)
Caused by: liquibase.exception.DatabaseException: Error executing SQL CREATE TAB
LE car (id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL, version BIGINT NOT
NULL, engine VARCHAR(255) NOT NULL, make VARCHAR(255) NOT NULL, manufacturer VAR
CHAR(255) NOT NULL, model_year VARCHAR(255) NOT NULL, price DOUBLE NOT NULL, CON
STRAINT carPK PRIMARY KEY (id)): Table "CAR" already exists; SQL statement:
CREATE TABLE car (id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL, version B
IGINT NOT NULL, engine VARCHAR(255) NOT NULL, make VARCHAR(255) NOT NULL, manufa
cturer VARCHAR(255) NOT NULL, model_year VARCHAR(255) NOT NULL, price DOUBLE NOT
NULL, CONSTRAINT carPK PRIMARY KEY (id)) [42101-176]
at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:62)
at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:104)
at liquibase.database.AbstractDatabase.execute(AbstractDatabase.java:109
1)
at liquibase.database.AbstractDatabase.executeStatements(AbstractDatabas
e.java:1075)
at liquibase.changelog.ChangeSet.execute(ChangeSet.java:317)
... 8 more
Caused by: org.h2.jdbc.JdbcSQLException: Table "CAR" already exists; SQL stateme
nt:
CREATE TABLE car (id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL, version B
IGINT NOT NULL, engine VARCHAR(255) NOT NULL, make VARCHAR(255) NOT NULL, manufa
cturer VARCHAR(255) NOT NULL, model_year VARCHAR(255) NOT NULL, price DOUBLE NOT
NULL, CONSTRAINT carPK PRIMARY KEY (id)) [42101-176]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:344)
at org.h2.message.DbException.get(DbException.java:178)
at org.h2.message.DbException.get(DbException.java:154)
at org.h2.command.ddl.CreateTable.update(CreateTable.java:110)
at org.h2.command.CommandContainer.update(CommandContainer.java:79)
at org.h2.command.Command.executeUpdate(Command.java:254)
at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:186)
at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:160)
at liquibase.executor.jvm.JdbcExecutor$1ExecuteStatementCallback.doInSta
tement(JdbcExecutor.java:92)
at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:55)
... 12 more
Lastly, if i start the app and navigate to
I can also see that the table "CAR" was created.
So it looks like db-migrate is trying to create the "CAR" table twice. This is what I can't figure out.