Hi,
I tried build 191 and I am still having the same problems. In the updateDatabase ant task, I specify my default schema name.
My database change log is:
And the resultant SQL is
-- *********************************************************************
-- Update Database Script
-- *********************************************************************
-- Change Log: C:/workspace/sas5.0/env-config/testChangeLog.xml
-- Ran at: 4/12/10 12:28 PM
-- Against: test1user@jdbc:sqlserver://1.2.3.4:1433;selectMethod=cursor;lastUpdateCount=true;databaseName=test1db;responseBuffering=full;
-- LiquiBase version: 2.0-rc2-SNAPSHOT
-- *********************************************************************
– Create Database Lock Table
CREATE TABLE [dbo].[DATABASECHANGELOGLOCK] ([ID] INT NOT NULL, [LOCKED] BIT NOT NULL, [LOCKGRANTED] DATETIME, [LOCKEDBY] VARCHAR(255), CONSTRAINT [PK_DATABASECHANGELOGLOCK] PRIMARY KEY ([ID]))
GO
INSERT INTO [dbo].[DATABASECHANGELOGLOCK] ([ID], [LOCKED]) VALUES (1, 0)
GO
– Lock Database
– Create Database Change Log Table
CREATE TABLE [dbo].[DATABASECHANGELOG] ([ID] VARCHAR(63) NOT NULL, [AUTHOR] VARCHAR(63) NOT NULL, [FILENAME] VARCHAR(200) NOT NULL, [DATEEXECUTED] DATETIME NOT NULL, [ORDEREXECUTED] INT NOT NULL, [EXECTYPE] VARCHAR(10) NOT NULL, [MD5SUM] VARCHAR(35), [DESCRIPTION] VARCHAR(255), [COMMENTS] VARCHAR(255), [TAG] VARCHAR(255), [LIQUIBASE] VARCHAR(20), CONSTRAINT [PK_DATABASECHANGELOG] PRIMARY KEY ([ID], [AUTHOR], [FILENAME]), CONSTRAINT [UQ_DBCL_ORDEREXEC] UNIQUE ([ORDEREXECUTED]))
GO
– Changeset testChangeLog.xml::1::unittest::(Checksum: 2:c32f08916f3df4a8e23652bc9873e4ff)
CREATE TABLE [dbo].[A_Table] ([id] BIGINT CONSTRAINT DF_A_Table_id DEFAULT NULL)
GO
INSERT INTO [dbo].[DATABASECHANGELOG] ([AUTHOR], [COMMENTS], [DATEEXECUTED], [DESCRIPTION], [EXECTYPE], [FILENAME], [ID], [LIQUIBASE], [MD5SUM], [ORDEREXECUTED]) VALUES (‘unittest’, ‘’, GETDATE(), ‘Create Table’, ‘EXECUTED’, ‘testChangeLog.xml’, ‘1’, ‘2.0-rc2-SNP’, ‘2:c32f08916f3df4a8e23652bc9873e4ff’, 1)
GO
– Changeset testChangeLog.xml::2::unittest::(Checksum: 2:c22a5acdbc4b24b0e1e151495e06e7bc)
CREATE INDEX AN_INDEX ON [dbo].A_Table
GO
INSERT INTO [dbo].[DATABASECHANGELOG] ([AUTHOR], [COMMENTS], [DATEEXECUTED], [DESCRIPTION], [EXECTYPE], [FILENAME], [ID], [LIQUIBASE], [MD5SUM], [ORDEREXECUTED]) VALUES (‘unittest’, ‘’, GETDATE(), ‘Create Index’, ‘EXECUTED’, ‘testChangeLog.xml’, ‘2’, ‘2.0-rc2-SNP’, ‘2:c22a5acdbc4b24b0e1e151495e06e7bc’, 2)
GO
All the tables, both liquibase tables and my table are created against DBO. If I specify the schema in the change set, then A_TABLE would be created against the correct schema. But DatabaseChangeLock and DatabaseChangeLogLock would still be part of dbo.
Since we have to support many databases, I am hesitant to set the schema name in the actual change log file. Would prefer to do it in ant via defaultSchemaName, for databases where this is relevant. What would happen if we set the schema name in “createTable” but it is not relevant for a certain db vendor. Would that field be ignored?
Thanks,
Alana
p.s. The index creation sql is now correct. Thanks.