I have fresh mysql instance and want to be able to create a plenty of databases and populate it with liquibase. While I have scripts (changesets) which works fine on manually created databases I want to be able to create databases with liquibase as well. When I try to connect without specifing database in URL I've got the error:
liquibase --driver=com.mysql.jdbc.Driver --url=jdbc:mysql://localhost:3306/ --username=root --password=admin --changeLogFile=create_dbs.sql tag empty
Unexpected error running Liquibase: Incorrect database name '' [Failed SQL: CREATE TABLE ``.DATABASECHANGELOGLOCK (ID INT NOT NULL, LOCKED BIT(1) NOT NULL, LOCKGRANTED datetime NULL, LOCKEDBY VARCHAR(255) NULL, CONSTRAINT PK_DATABASECHANGELOGLOCK PRIMARY KEY (ID))]
I don't need these changes (database creation) to be tracked by liquibase, seems like I want to use LB as quick bootstrap tool.
Very first need to add database name in URL like jdbc:mysql://localhost:3306/database_name
.
you can also create a fresh database using this URL
jdbc:mysql://localhost:3306/database_name?createDatabaseIfNotExist=true
createDatabaseIfNotExist this keyword create a fresh new database in your system. If the database does not exist. if exist, skip executing.
How to create database with Liquibase
You need to specify the database in the URL.
EDIT
Liquibase doesn't actually do the very first step of creating the empty database with permissions, etc. That must be done using the platform's native tools. Once an empty database is in place, liquibase will populate the database schema by creating the correct tables, etc.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With