【发布时间】:2016-11-14 13:10:12
【问题描述】:
我正在尝试使用 gradle 脚本迁移一些 SQL 表:
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath 'gradle.plugin.com.boxfuse.client:flyway-release:4.0.3'
classpath group: 'org.postgresql', name: 'postgresql', version: '9.4.1208.jre7'
}
}
apply plugin: 'org.flywaydb.flyway'
flyway {
user = 'postgres'
url = 'jdbc:postgresql://localhost:5432/test'
driver = 'org.postgresql.Driver'
locations = ['filesystem:scripts']
}
在 scripts 目录中,我只有一个 SQL 脚本:
CREATE TABLE place (
id VARCHAR(50) NOT NULL,
country VARCHAR(255),
country_code VARCHAR(255),
name VARCHAR(255),
PRIMARY KEY(id)
);
当我运行 gradle flywayMigrate -i 时,我得到了输出:
Database: jdbc:postgresql://localhost:5432/test (PostgreSQL 9.5)
Successfully validated 0 migrations (execution time 00:00.009s)
Current version of schema "public": << Empty Schema >>
Schema "public" is up to date. No migration necessary.
在 test 数据库 中创建了 schema_version 表,但未创建表 place。
flyway的目录结构为:
flyway-dir
-- build.gradle
-- scripts/001-add_place_table.sql
我是否缺少飞行路线的一些额外设置?很遗憾,我没有收到任何错误消息。
【问题讨论】:
-
看起来正确,什么是:operational-db目录?你只提过一次。
-
@Opal:对不起,我写错了脚本目录的名称。我已经编辑了错误。
-
您的脚本名称似乎也错误,请调查命名部分:flywaydb.org/documentation/migration/sql
-
命名约定是个问题。能否请您写一个答案,以便我投票给它正确的答案?