私は新しい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ツールとして使用したいようです。
まず、jdbc:mysql://localhost:3306/database_name
のようなURLにデータベース名を追加する必要があります。
このURLを使用して新しいデータベースを作成することもできます
jdbc:mysql://localhost:3306/database_name?createDatabaseIfNotExist=true
createDatabaseIfNotExistこのキーワードは、システムに新しいデータベースを作成します。データベースが存在しない場合。存在する場合は、実行をスキップします。
URLでデータベースを指定する必要があります。
[〜#〜]編集[〜#〜]
Liquibaseは、実際には、パーミッションなどを使用して空のデータベースを作成する最初のステップを実行しません。これは、プラットフォームのネイティブツールを使用して実行する必要があります。空のデータベースが配置されると、liquibaseは正しいテーブルなどを作成してデータベーススキーマにデータを入力します。