使用Flyway进行数据库的迁移后新用户不能正确初始化数据的补救方案
在我费尽千辛万苦做好了老用户的丝滑迁移后(不是,第二天我就发现了新用户不能正确初始化数据库,不查不知道,一查吓一跳,原来 Flyway 优先于 schema.sql。
这也就是为什么会报错:
SQL State : null Error Code : 1 Message : [SQLITE_ERROR] SQL error or missing database (no such table: files)
Location : db/migration/V2__AddFullSizeColumn.sql (D:\project\tgDrive\target\nested:\D:\project\tgDrive\target\tgDrive-0.0.4-SNAPSHOT.jar\!BOOT-INF\classes\!\db\migration\V2__AddFullSizeColumn.sql)
Line : 1
Statement : ALTER TABLE files ADD COLUMN full_size INTEGER DEFAULT 0
解决方法就是在db/migration/
目录下新建一个创建表的脚本,例如V1__CreateTables.sql
,这里直接将schema.sql
里的内容复制粘贴过来就行了
再次以没有初始化数据库的情况下启动,就能正常启动了。