Flyway 默认尝试从classpath:db/migration 文件夹中读取数据库迁移脚本。
所有迁移脚本都必须遵循特定的命名约定 - V<VERSION_NUMBER>__<NAME>.sql。
在src/main/resources/db/migration目录下新建一个名为V1__Create_Tables.sql的文件,并添加sql脚本,例如:
-- ----------------------------
-- Schema for helloservice
-- ----------------------------
CREATE SCHEMA IF NOT EXISTS helloworld;
-- ----------------------------
-- Table structure for user
-- ----------------------------
CREATE TABLE helloworld.users (
id BIGSERIAL PRIMARY KEY NOT NULL UNIQUE,
username VARCHAR(255) UNIQUE NOT NULL,
password VARCHAR(255) NOT NULL,
first_name VARCHAR(255),
middle_name VARCHAR(255),
last_name VARCHAR(255),
email VARCHAR(255),
enabled bool NOT NULL DEFAULT true,
account_locked bool NOT NULL,
account_expired bool NOT NULL,
credential_expired bool NOT NULL,
created_on timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_on timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP
);
COMMENT ON TABLE helloworld.users IS 'User table';
当您运行应用程序时,flyway 将自动检查当前数据库版本并应用任何待处理的迁移。默认情况下,不需要其他属性。您还可以在此脚本中创建模式。或者,如果您指定不存在的方案,flyway 会为您完成。
如果您使用的是休眠,请检查此属性:
spring.jpa.hibernate.ddl-auto=validate
有关详细信息,请参阅instructions。