如何从另一个数据库(不是 postgres)create_reference_table?
How to create_reference_table from another DB (not postgres)?
我试图创建新数据库,当其中有表时,然后使它们分布,但不能在新数据库中使用 create_reference_table()(未找到)。
如果我尝试 运行 create_reference_table('newbie.schema.new_table) 我会得到错误 "ERROR: cross-database references are not implemented":
CREATE DATABASE newbie;
SELECT * from master_add_node('citus-worker1', 5432);
SELECT * from master_add_node('citus-worker2', 5432);
SELECT run_command_on_workers('CREATE DATABASE newbie;');
\c newbie
create table new_table
SELECT create_reference_table('schema.new_table');
导致
错误:函数 create_reference_table(未知)不存在
看起来像恶性循环(
您需要在所有数据库上分别 运行 CREATE EXTENSION Citus
(当然,如果您想在这些数据库中分发一些表)。 Citus 将分布式对象元数据存储在相关数据库中。
这些步骤应该有效:
\c newbie
CREATE EXTENSION Citus;
CREATE SCHEMA s;
CREATE TABLE s.new_table(id int);
SELECT create_reference_table('s.new_table');
如果您在启用 Citus 扩展程序时 运行 CREATE DATABASE ...
,您可以看到帮助消息:
postgres=# create database new_db;
NOTICE: Citus partially supports CREATE DATABASE for distributed databases
DETAIL: Citus does not propagate CREATE DATABASE command to workers
HINT: You can manually create a database and its extensions on workers.
另外不要忘记 运行 master_add_node()
在新数据库中添加工作节点。工作人员元数据也存储在关联的数据库中。
我试图创建新数据库,当其中有表时,然后使它们分布,但不能在新数据库中使用 create_reference_table()(未找到)。 如果我尝试 运行 create_reference_table('newbie.schema.new_table) 我会得到错误 "ERROR: cross-database references are not implemented":
CREATE DATABASE newbie;
SELECT * from master_add_node('citus-worker1', 5432);
SELECT * from master_add_node('citus-worker2', 5432);
SELECT run_command_on_workers('CREATE DATABASE newbie;');
\c newbie
create table new_table
SELECT create_reference_table('schema.new_table');
导致 错误:函数 create_reference_table(未知)不存在 看起来像恶性循环(
您需要在所有数据库上分别 运行 CREATE EXTENSION Citus
(当然,如果您想在这些数据库中分发一些表)。 Citus 将分布式对象元数据存储在相关数据库中。
这些步骤应该有效:
\c newbie
CREATE EXTENSION Citus;
CREATE SCHEMA s;
CREATE TABLE s.new_table(id int);
SELECT create_reference_table('s.new_table');
如果您在启用 Citus 扩展程序时 运行 CREATE DATABASE ...
,您可以看到帮助消息:
postgres=# create database new_db;
NOTICE: Citus partially supports CREATE DATABASE for distributed databases
DETAIL: Citus does not propagate CREATE DATABASE command to workers
HINT: You can manually create a database and its extensions on workers.
另外不要忘记 运行 master_add_node()
在新数据库中添加工作节点。工作人员元数据也存储在关联的数据库中。