- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在 Django 项目中,我有一个模型 Question
在lucy_web
app,而是对应的lucy_web_question
表不存在,如 \dt
所示数据库 shell 中的命令:
(lucy-web-CVxkrCFK) bash-3.2$ python manage.py dbshell
psql (10.4)
Type "help" for help.
lucy=> \dt
List of relations
Schema | Name | Type | Owner
--------+------------------------------+-------+---------
public | auditlog_logentry | table | lucyapp
public | auth_group | table | lucyapp
public | auth_group_permissions | table | lucyapp
public | auth_permission | table | lucyapp
public | auth_user | table | lucyapp
public | auth_user_groups | table | lucyapp
public | auth_user_user_permissions | table | lucyapp
public | defender_accessattempt | table | lucyapp
public | django_admin_log | table | lucyapp
public | django_content_type | table | lucyapp
public | django_migrations | table | lucyapp
public | django_session | table | lucyapp
public | lucy_web_checkin | table | lucyapp
public | lucy_web_checkintype | table | lucyapp
public | lucy_web_company | table | lucyapp
public | lucy_web_expert | table | lucyapp
public | lucy_web_expertsessiontype | table | lucyapp
public | lucy_web_family | table | lucyapp
public | lucy_web_lucyguide | table | lucyapp
public | lucy_web_notification | table | lucyapp
public | lucy_web_package | table | lucyapp
public | lucy_web_packagesessiontype | table | lucyapp
public | lucy_web_preactivationfamily | table | lucyapp
public | lucy_web_profile | table | lucyapp
public | lucy_web_questionanswer | table | lucyapp
public | lucy_web_questioncategory | table | lucyapp
public | lucy_web_session | table | lucyapp
public | lucy_web_sessioncategory | table | lucyapp
public | lucy_web_sessiontype | table | lucyapp
public | lucy_web_userapn | table | lucyapp
public | oauth2_provider_accesstoken | table | lucyapp
public | oauth2_provider_application | table | lucyapp
public | oauth2_provider_grant | table | lucyapp
public | oauth2_provider_refreshtoken | table | lucyapp
public | otp_static_staticdevice | table | lucyapp
public | otp_static_statictoken | table | lucyapp
public | otp_totp_totpdevice | table | lucyapp
public | two_factor_phonedevice | table | lucyapp
(38 rows)
我们还有一个部署在 Aptible 上的暂存环境,它似乎确实有这些表。使用 Aptible CLI to create a database tunnel , 如果我 psql <connection_url>
和 dt
我确实看到了 lucy_web_question
表:
db=# \dt
List of relations
Schema | Name | Type | Owner
--------+------------------------------+-------+---------
public | auditlog_logentry | table | aptible
public | auth_group | table | aptible
public | auth_group_permissions | table | aptible
public | auth_permission | table | aptible
public | auth_user | table | aptible
public | auth_user_groups | table | aptible
public | auth_user_user_permissions | table | aptible
public | defender_accessattempt | table | aptible
public | django_admin_log | table | aptible
public | django_content_type | table | aptible
public | django_migrations | table | aptible
public | django_session | table | aptible
public | lucy_web_checkin | table | aptible
public | lucy_web_checkintype | table | aptible
public | lucy_web_company | table | aptible
public | lucy_web_expert | table | aptible
public | lucy_web_expertsessiontype | table | aptible
public | lucy_web_family | table | aptible
public | lucy_web_lucyguide | table | aptible
public | lucy_web_notification | table | aptible
public | lucy_web_package | table | aptible
public | lucy_web_packagesessiontype | table | aptible
public | lucy_web_preactivationfamily | table | aptible
public | lucy_web_profile | table | aptible
public | lucy_web_question | table | aptible
public | lucy_web_questionanswer | table | aptible
public | lucy_web_questioncategory | table | aptible
public | lucy_web_questionprompt | table | aptible
public | lucy_web_session | table | aptible
public | lucy_web_sessioncategory | table | aptible
public | lucy_web_sessiontype | table | aptible
public | lucy_web_userapn | table | aptible
public | oauth2_provider_accesstoken | table | aptible
public | oauth2_provider_application | table | aptible
public | oauth2_provider_grant | table | aptible
public | oauth2_provider_refreshtoken | table | aptible
public | otp_static_staticdevice | table | aptible
public | otp_static_statictoken | table | aptible
public | otp_totp_totpdevice | table | aptible
public | two_factor_phonedevice | table | aptible
(40 rows)
因为这些测试环境的数据并不重要,所以我想pg_dump
Aptible 数据库和 pg_restore
它在我的本地机器上。
我的本地 DATABASE_URL
是postgres://lucyapp:<my_password>@localhost/lucy
,所以首先,我做了一个 pg_dump
与 --format=custom
并指定 --file
如下:
Kurts-MacBook-Pro-2:lucy2 kurtpeek$ touch staging_db_12_July.dump
Kurts-MacBook-Pro-2:lucy2 kurtpeek$ pg_dump postgresql://aptible:<some_aptible_hash>@localhost.aptible.in:62288/db --format=custom --file=staging_db_12_July.dump
Kurts-MacBook-Pro-2:lucy2 kurtpeek$ ls -lhtr | tail -1
-rw-r--r-- 1 kurtpeek staff 1.5M Jul 12 18:09 staging_db_12_July.dump
这导致 1.5Mb .dump
文件,我尝试使用 pg_restore
恢复该文件与 --no-owner
选项和 --role=lucyapp
(为了将所有者从 aptible
更改为 lucyapp
)。但是,这会导致大量“已经存在”的错误,如下所示:
Kurts-MacBook-Pro-2:lucy2 kurtpeek$ pg_restore staging_db_12_July.dump --dbname=lucy --no-owner --role=lucyapp
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 3522; 0 0 COMMENT EXTENSION plpgsql
pg_restore: [archiver (db)] could not execute query: ERROR: must be owner of extension plpgsql
Command was: COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
pg_restore: [archiver (db)] Error from TOC entry 2; 3079 16392 EXTENSION hstore
pg_restore: [archiver (db)] could not execute query: ERROR: permission denied to create extension "hstore"
HINT: Must be superuser to create this extension.
Command was: CREATE EXTENSION IF NOT EXISTS hstore WITH SCHEMA public;
pg_restore: [archiver (db)] Error from TOC entry 3523; 0 0 COMMENT EXTENSION hstore
pg_restore: [archiver (db)] could not execute query: ERROR: extension "hstore" does not exist
Command was: COMMENT ON EXTENSION hstore IS 'data type for storing sets of (key, value) pairs';
pg_restore: [archiver (db)] Error from TOC entry 197; 1259 16515 TABLE auditlog_logentry aptible
pg_restore: [archiver (db)] could not execute query: ERROR: relation "auditlog_logentry" already exists
Command was: CREATE TABLE public.auditlog_logentry (
id integer NOT NULL,
object_pk character varying(255) NOT NULL,
object_id bigint,
object_repr text NOT NULL,
action smallint NOT NULL,
changes text NOT NULL,
"timestamp" timestamp with time zone NOT NULL,
actor_id integer,
content_type_id integer NOT NULL,
remote_addr inet,
additional_data jsonb,
CONSTRAINT auditlog_logentry_action_check CHECK ((action >= 0))
);
WARNING: errors ignored on restore: 294
问题是如果我\dt
再次在 python manage.py dbshell
,我仍然没有看到 lucy_web_question
表。
我遇到过这个解决方案,Django : Table doesn't exist ,对于我的情况,但在我的情况下是 Question
model 在很多地方被导入并用作外键,我认为只恢复数据库会更容易。为什么不恢复 lucy_web_question
table 呢?
最佳答案
问题似乎是 lucyapp
用户没有足够的权限来创建表。我基本上必须确保 \dn+
命令产生了这个结果:
lucy=# \dn+
List of schemas
Name | Owner | Access privileges | Description
--------+----------+----------------------+------------------------
public | postgres | postgres=UC/postgres+| standard public schema
| | =UC/postgres +|
| | lucyapp=UC/postgres |
(1 row)
lucyapp
有 USAGE
(U
) 和 CREATE
(C
) 特权。正在关注https://www.postgresql.org/docs/9.0/static/sql-grant.html , 这可以通过命令来实现
GRANT USAGE ON SCHEMA public TO lucyapp;
GRANT CREATE ON SCHEMA public TO lucyapp;
在运行这些命令之前,我还让 lucyapp
成为了 super 用户
,尽管不建议在生产环境中这样做。
关于django - pg_restore 不恢复某个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51316479/
我正在尝试使用 pg_restore 从备份文件中恢复一个表。但是我得到了上面提到的错误。我到处都读到需要升级版本的 postgres。我将我的升级到 9.6.8-1,然后升级到 10.3-1。两者都
我使用 powershell、pgAdmin 4v6 在 Windows 10 上工作,用户没有管理员权限。 当我使用与此类似的命令创建转储时: pg_dump -h localhost -p 808
我正在尝试将.Backup格式的备份恢复到Vercel,但一直收到此错误。PG_RESTORE:错误:文件头中的版本(1.15)不受支持。据pgAdmin Vercel称,Vercel也在运行这个版本
我正在尝试将.Backup格式的备份恢复到Vercel,但一直收到此错误。PG_RESTORE:错误:文件头中的版本(1.15)不受支持。据pgAdmin Vercel称,Vercel也在运行这个版本
如果网络故障导致 pg_restore 进程退出,是否可以恢复恢复? 最佳答案 根据 here没有简单的方法来恢复您的 pg_restore。 关于postgresql - 网络故障后恢复 pg_re
转储表并将其导入另一个 postgres 数据库后,约束丢失。 我用它来转储: pg_dump --host=local --username=user -W --encoding=UTF-8
我从一位对 Postgres 零知识的同事那里得到了一个项目。我正在尝试将 pg_restore 集成到 Jenkins Pipeline 作业中,它返回一个错误,我被告知可以忽略该错误。但是这个错误
在 Ubuntu 16.04 上运行 9.5不确定备份了什么数据库,我认为是 8.4 当我运行 pg_restore 时,我得到了 pg_restore: implied data-only rest
Postgres 版本: PostgreSQL 9.2.4 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red
我正在测试我的备份/恢复过程,当我恢复数据库时,所有表以及数据和表所有权都是正确的。但是,我担心一些警告/错误。 我的备份是使用 postgres crontab 在 cronjob 中运行的。然而,
我正在尝试使用 pg_restore 从存储在 amazon S3 存储桶中的远程文件恢复我的数据库。 我尝试这样做:pg_restore -c -d mydb https://myfileURL 但
帮助!突然间,我在尝试从转储中恢复本地数据库时遇到此错误: $ pg_restore --no-acl --no-owner --dbname my_db tmp/latest.dump pg_res
我正在全新安装的 Ubuntu 上设置 Rails 应用程序,并使用 rake db:create:all 创建了 Postgres 数据库。在 databases.yml 中,所有数据库的密码字段都
假设我有两个主机服务器 s1 和 s2。在这两个服务器中,我都有一个名为 n1 的模式,现在我对 s1 的模式 n1 中存在的一些表进行了一些更改。我想对服务器 s2 的模式 n1 进行相同的更改。我
我正在通过命令行将我的数据库“mydatabase”转储到文本文件“mydatabase.sql”中。 "C:/Program Files (x86)/PostgreSQL/9.1/bin/pg_du
我有一个 Postgresql 转储(使用 pg_dump 创建,自定义压缩格式)。我想将它 pg_restore 到 STDOUT,但用管道替换制表符分隔。我试过只使用通过 tr 的管道,但我确实有
在 Django 项目中,我有一个模型 Question在lucy_web app,而是对应的lucy_web_question表不存在,如 \dt 所示数据库 shell 中的命令: (lucy-w
我在 Heroku 上有一个数据库,我正在尝试将其复制到我的本地计算机。 我通过以下操作创建了数据库备份: heroku pgbackups:capture 这会创建一个数据库的转储文件,我通过创建指
我遇到 pg_restore --clean 没有清除数据库的问题。 还是我误解了 --clean 的作用,我希望它截断数据库表并重新初始化索引/主键。 我在 rds 上使用 9.5 这是我们使用的完
所以我使用 pg_dump 备份了一个表: pg_dump -U bob -F c -d commerce -t orders > orders.dump 该表有多个列出的索引,例如主键 但是,当我使
我是一名优秀的程序员,十分优秀!