使用flyway迁移脚本时如何从文件中填写表格

Posted

技术标签:

【中文标题】使用flyway迁移脚本时如何从文件中填写表格【英文标题】:How can I fill in a table from a file when using flyway migration scripts 【发布时间】:2021-11-20 11:23:56 【问题描述】:

我有脚本

/*The extension is used to generate UUID*/
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

-- auto-generated definition
create table users
(
    id  uuid not null DEFAULT uuid_generate_v4 ()
        constraint profile_pkey
            primary key,
    em    varchar(255),
    user varchar(255)
);

在 IDE Intellij Idea(带有 Spring Boot 的项目)中:

src/main/resources/db-migration src/main/resources/sql_scripts: 复制.sql 用户.txt

我现在只是尝试运行一个简单的 Sql 命令以查看一切是否正常

copy.sql
COPY profile FROM '/sql_scripts/user.txt'
    USING DELIMITERS ',' WITH NULL AS '\null';
user.txt

'm@mai.com', 'sara'
's@yandex.ru', 'jacobs'

但是当我运行复制命令时,我得到一个错误

错误:无法打开文件...

也许谁知道它应该如何工作以及需要修复什么?

【问题讨论】:

【参考方案1】:

很有可能它是一个路径问题;你可以试试,而不是

COPY profile FROM '/sql_scripts/user.txt'

在做

COPY profile FROM './sql_scripts/user.txt'

(或绝对路径)

【讨论】:

我有错误:错误:无法打开文件“./sql_scripts/user.txt”进行阅读:没有这样的文件或.... ...当准备从底层操作系统复制文件时,请记住指定的文件必须可由 postmaster 进程(即运行 PostgreSQL 的用户)读取,因为后端直接读取文件。此外,文件名必须提供绝对路径;尝试使用相对路径将导致错误...

以上是关于使用flyway迁移脚本时如何从文件中填写表格的主要内容,如果未能解决你的问题,请参考以下文章

Flyway 迁移更新架构

尝试在 sql-server 上迁移时 Flyway 挂起

最佳实践:使用后如何修改flyway迁移脚本

如何在 flyway 中压缩/合并迁移

使用flyway迁移到Google Cloud SQL,应该复制哪些jar文件?

如何实现 flyway-play Java 迁移