【问题标题】:Postgresql cross-database references are not implementedPostgresql 跨数据库引用未实现
【发布时间】:2019-01-09 16:55:24
【问题描述】:

我正在尝试创建一个数据库,然后在其中创建一个表。我使用 docker-compose.yml 在 sql 文件中编写了查询以与 postgres 图像一起使用

当我使用 docker-compose build 然后 docker-compose up 我得到一个错误

"psql:/docker-entrypoint-initdb.d/init.sql:18: 错误:未实现跨数据库引用:"real_estate.public.estate" 后勤 |第 1 行:创建表 real_estate.public.estate ("

这是我的 init.sql 文件

CREATE DATABASE "real_estate"
    WITH OWNER "postgres"
    ENCODING 'UTF8';
CREATE TABLE real_estate.public.estate (
    estate_title TEXT,
    estate_address TEXT,
    estate_area TEXT,
    estate_description TEXT,
    estate_price TEXT,
    estate_type TEXT,
    estate_tag TEXT,
    estate_date TEXT,
    estate_seller_name TEXT,
    estate_seller_address TEXT,
    estate_seller_phone TEXT,
    estate_seller_mobile TEXT,
    estate_seller_email TEXT
 );

【问题讨论】:

    标签: postgresql docker


    【解决方案1】:

    您收到该错误是因为您未连接到 real_estate 数据库。

    我假设您已连接到 postgres,因为这是您运行 CREATE DATABASE 时通常执行的操作。

    您必须终止现有的数据库连接,然后启动一个到新创建的数据库的连接。只有这样你才能在数据库中创建对象。

    是不同数据库严格分离的特性,any request to change that will be turned down

    如何做到最好取决于您运行脚本的方式。如果你用psql 运行它,一个简单的\c real_estate 就可以了。

    【讨论】:

    • 哦,它现在工作了,我在创建数据库后添加了 \c real_estate,现在在其中创建了表,谢谢你的回答:)
    猜你喜欢
    • 2019-01-17
    • 1970-01-01
    • 2021-11-24
    • 1970-01-01
    • 1970-01-01
    • 2023-01-30
    • 1970-01-01
    • 2011-09-11
    • 1970-01-01
    相关资源
    最近更新 更多