我按照 prisma.io 的教程开始构建本地服务器。
按照 docker-compose.yml
文件:
version: '3'
services:
prisma:
image: prismagraphql/prisma:1.34
restart: always
ports:
- '4466:4466'
environment:
PRISMA_CONFIG: |
port: 4466
databases:
default:
connector: postgres
host: postgres
port: 5432
user: prisma
password: prisma
postgres:
image: postgres:10.3
restart: always
environment:
POSTGRES_USER: prisma
POSTGRES_PASSWORD: prisma
volumes:
- postgres:/var/lib/postgresql/data
volumes:
postgres: ~
我搭建了两个 Docker 容器,一个是 Prisma 服务器,另一个是 PostgreSQL 数据库。
我以为在运行了
prisma deploy
命令后,模型 User 应该会在数据库中创建一个用户表格。但是当我尝试检查数据库中的模式时,得到的结果是:
docker exec -it myContainer psql -U prisma
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+------------+------------+-----------------------
postgres | postgres | UTF8 | en_US.utf8 | en_US.utf8 |
prisma | postgres | UTF8 | en_US.utf8 | en_US.utf8 |
template0 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
prisma=# \z // or postgres=# \z
Access privileges
Schema | Name | Type | Access privileges | Column privileges | Policies
--------+------+------+-------------------+-------------------+----------
(0 rows)
prisma=# \dt or postgres=# \dt
Did not find any relations.
然后我尝试检查虚拟机中的音量文件夹
docker run -it --rm --privileged --pid=host justincormack/nsenter1
/var/lib/docker/volumes/first_prisma_postgres/_data # ls
PG_VERSION pg_commit_ts pg_ident.conf pg_notify pg_snapshots pg_subtrans pg_wal postgresql.conf
base pg_dynshmem pg_logical pg_replslot pg_stat pg_tblspc pg_xact postmaster.opts
global pg_hba.conf pg_multixact pg_serial pg_stat_tmp pg_twophase postgresql.auto.conf postmaster.pid
数据确实存在于虚拟机中,但我如何检查数据或从虚拟机中进行转储备份?
\l
命令后,有四个数据库返回postgres
、prisma
和template 0(1)
。我通过使用\c
和\d
检查了每个数据库,并且所有操作都返回了did not find any relations
。 - Champer Wu\c postgres
和\c prisma
,然后每个连接我也运行了\d
和\z
。所有的响应都是空的。 - Champer Wu{data:{users:[{id: 1, content: "blablabla"}]}}
。 - Champer Wu