web-dev-qa-db-ja.com

空のmysqlインスタンスにliquibaseを使用してデータベースを作成します

私は新しいmysqlインスタンスを持っており、たくさんのデータベースを作成して、それにliquibaseを追加できるようにしたいと考えています。手動で作成したデータベースで正常に機能するスクリプト(チェンジセット)がありますが、liquibaseを使用してデータベースを作成できるようにしたいと考えています。 URLでデータベースを指定せずに接続しようとすると、次のエラーが発生します。

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))]

これらの変更(データベースの作成)をliquibaseで追跡する必要はありません。LBをクイックbootstrapツールとして使用したいようです。

10
paul

まず、jdbc:mysql://localhost:3306/database_nameのようなURLにデータベース名を追加する必要があります。

このURLを使用して新しいデータベースを作成することもできます

jdbc:mysql://localhost:3306/database_name?createDatabaseIfNotExist=true

createDatabaseIfNotExistこのキーワードは、システムに新しいデータベースを作成します。データベースが存在しない場合。存在する場合は、実行をスキップします。

Liquibaseでデータベースを作成する方法

20
Vipin Jain

URLでデータベースを指定する必要があります。

[〜#〜]編集[〜#〜]

Liquibaseは、実際には、パーミッションなどを使用して空のデータベースを作成する最初のステップを実行しません。これは、プラットフォームのネイティブツールを使用して実行する必要があります。空のデータベースが配置されると、liquibaseは正しいテーブルなどを作成してデータベーススキーマにデータを入力します。

5
SteveDonie