sql - 如何使用postgreSQL初始化多个sql文件

标签 sql postgresql

我是 Web 开发新手,正在全栈节点、react、express、postgreSQL 应用程序上运行。到目前为止,我完成的所有教程和我找到的文档都讨论了使用单个 .sql 文件。但是我想您会在大型应用程序中使用多个?

例如,在 Facebook 克隆的小型版本中,我认为您应该为用户、帖子、组等创建一个单独的 .sql...将所有内容都集中到一个文件中似乎是一团糟,哈哈.

如果需要多个文件,我想知道如何启动这些文件。你仍然使用一个数据库名称但使用多个sql文件吗?我发现的最接近的是如下所示:

// Initiate your database in a bash script
database="appdb"

dropdb -U node_user appdb
createdb -U node_user appdb

// Initiate sql files, something like this?
psql -U node_user "BEGIN;" \i file1.sql \i file2.sql "COMMIT;"

// Or iterate through the .sql files?
for file in dir/*.sql
    do sudo -u postgres psql $DATABASE_NAME -f $file
done

想知道其中任何一个是否正确以及是否有执行此操作的标准方法。如有任何想法和/或进一步阅读 Material ,我们将不胜感激。

非常感谢

最佳答案

如果您想在单个事务中运行多个脚本,请使用

psql -U node_user -d "$database" --single-transaction -f file1.sql -f file2.sql

关于sql - 如何使用postgreSQL初始化多个sql文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67630053/

相关文章:

sql - 通过raster2pgsql导入栅格,但出现sql语法错误

java - 如何使用Java调用Oracle数据库中IN和OUT参数的存储函数

php - 将 SQL 转换为 cakephp ORM

mysql - 当某些列仅在某些情况下适用时,为 1 对 1 关系设计数据库

ruby-on-rails - PostgreSQL全文搜索: how do i scope it?

sql - 在没有足够数据可用的情况下,使用带有前导空值的 SQL 窗口函数计算移动平均值

ruby-on-rails - 多个字段的唯一索引......但不是你想的那样

sql - 如何在不同的驱动器上创建新的 SQL 数据库

java - mysql 查询不是在 java 中执行而是在我的 SQLYog 中执行

mysql - mysqldump 命令中的语法错误