无法使用SYS架构执行flyway迁移

时间:2016-03-07 20:15:13

标签: oracle flyway

我的许多迁移脚本中的第一个创建了架构和表空间,其余的迁移脚本在其中创建表,执行插入等。这样做是为了让我可以删除整个架构并从头开始使用flyway。 cmd flyway migrate命令连接为“SYS AS SYSDBA”,验证我的迁移文件,然后给出以下错误:

错误:找到非空架构“SYS”,没有元数据表!使用baseline()或将baselineOnMigrate设置为true以初始化元数据表。

在flyway.conf中将baselineOnMigrate设置为true不会改变任何内容。

我试图做的是什么?我不应该这样做吗?

1 个答案:

答案 0 :(得分:0)

我相信您可能没有正确设置“schemas”配置变量。如果没有设置,Flyway只会use the connection schema - 在这种情况下是“SYS”。然后它将尝试以SYS形式创建SCHEMA_MIGRATION表,然后终止,因为SYS不为空。

解决方案是将“schemas”变量设置为其他用户,然后如果该用户尚不存在,Flyway将自动创建该用户。只需确保添加一个迁移脚本,该脚本将根据应用程序的需要授予相应的权限(例如connect / resource),并可能通过ALTER USER语句(而不是CREATE USER语句)重置该用户的密码。

相关问题