【问题标题】:How to run SQL files in a directory in order by file name in PSQL如何在PSQL中按文件名顺序运行目录中的SQL文件
【发布时间】:2017-12-10 22:53:44
【问题描述】:

有点像这个问题:Run all SQL files in a directory

我有如下文件:V1__some_migration.sqlV2__some_other_one.sql

我想知道如何根据文件名循环并在一些 bash 脚本中导入这些文件(如果您知道一种在 UNIX [OS X] 和 Linux [Ubuntu] 上都可以使用的方法,则可以加分)

【问题讨论】:

    标签: sql bash postgresql psql


    【解决方案1】:

    循环:

    YOUR_DIR="/path/to/your/directory"
    for file in $YOUR_DIR/*; do
        psql <insert your options here> "${file}"
    done
    

    【讨论】:

    • 也许导入对它来说是个坏词?我们有一个非常小的、不是关键任务的后端服务,需要迁移。迁移相当简单,但需要一种简单的方法循环并在部署后类型的挂钩中导入迁移。 SQL 文件本身总是写为“如果不存在”,因此它们应该可以安全地多次运行。
    • 快来试试吧!感谢您这么快的回复!
    • 使用变量PATH 不是一个好主意。如果文件名包含空格,它也会失败。
    • 哦,真的,我没注意到 :) 任何人都不应该在 Unix 文件名中使用空格。事实上,简单的外壳扩展已经对文件进行了排序。索尔 |排序可能只是 *.它适用于空格。
    猜你喜欢
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 2014-12-19
    • 1970-01-01
    • 2021-12-13
    相关资源
    最近更新 更多