Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PostgreSQL-自动创建架构和表-powershell_Sql_Postgresql_Powershell_Automation - Fatal编程技术网

PostgreSQL-自动创建架构和表-powershell

PostgreSQL-自动创建架构和表-powershell,sql,postgresql,powershell,automation,Sql,Postgresql,Powershell,Automation,我正在尝试将模式和一些表的创建自动化到新创建的模式中。我正试图在powershell中编写一个脚本来帮助我实现同样的目标。我已经能够创建模式,但是,我无法将表创建到该模式中 我正在将要创建的新架构作为变量传递给powershell 到目前为止的脚本(基于以下答案中的解决方案): 在执行时,我看到以下错误: psql:E:/automation/scripts/create-tables.sql:11: ERROR: no schema has been selected to create

我正在尝试将模式和一些表的创建自动化到新创建的模式中。我正试图在powershell中编写一个脚本来帮助我实现同样的目标。我已经能够创建模式,但是,我无法将表创建到该模式中

我正在将要创建的新架构作为变量传递给powershell

到目前为止的脚本(基于以下答案中的解决方案):


在执行时,我看到以下错误:

psql:E:/automation/scripts/create-tables.sql:11: ERROR:  no schema has been selected to create in
create-tables.sql的内容是:

SET search_path TO :schema;

CREATE TABLE testing (
  id SERIAL,
  QueryDate varchar(255) NULL
);

您在第一步就做到了这一点:

$CreateSchema = 'CREATE SCHEMA \"'+$MySchema+'\"; set schema '''+$MySchema+''';'

去掉
设置模式
——这是错误的,导致模式无法创建。然后在下一步中,您将得到一个空的搜索路径(因为从未创建架构),这就是为什么会出现该错误。

我删除了
set schema
代码。不过,同样的错误依然存在
psql:E:/automation/scripts/create tables.sql:11:错误:没有选择要在中创建的架构
我还可以做些什么来让它工作?对我来说,这似乎是一件小事,但我似乎找不到一个快速的解决方案,任何帮助都是感激的。我想你需要一步一步地完成。首先注释掉对psql的第二个调用,运行脚本,然后手动检查模式是否存在。如果是这样,请注释掉对psql的第一个调用,运行脚本,并检查模式中是否存在测试表。您可能还希望查看数据库日志文件,并可能在配置文件中设置“log_statement=all”,以查看实际运行的所有内容。到目前为止,我的代码创建了一个架构,并且在尝试创建表时出错。由于这是HI将在每个客户机上只运行一次的内容,因此我不太担心检查架构是否存在(至少目前不存在)。如果您在尝试创建表时遇到的错误是“没有选择要在中创建的架构”,那么您应该检查架构是否存在。
$CreateSchema = 'CREATE SCHEMA \"'+$MySchema+'\"; set schema '''+$MySchema+''';'