没有实现Postgresql跨数据库引用

Zer*_*lli 5 postgresql docker

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

当我使用 docker-compose build 然后使用 docker-compose up 时出现错误

“psql:/docker-entrypoint-initdb.d/init.sql:18:错误:未实现跨数据库引用:“real_estate.public.estate”postgres | 第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
 );
Run Code Online (Sandbox Code Playgroud)

Lau*_*lbe 2

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

我假设您已连接到postgres,因为这就是您通常运行的方式CREATE DATABASE

您必须终止现有的数据库连接,然后启动与新创建的数据库的连接。只有这样您才可以在数据库中创建对象。

它的特点是不同的数据库严格分开,任何更改请求都会被拒绝

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