代码之家  ›  专栏  ›  技术社区  ›  J86

Postgres:将记录从本地数据库移动到远程数据库

  •  -1
  • J86  · 技术社区  · 7 年前

    背景信息

    我正在编写一个用ASP.NET Core2.1.0编写的应用程序,PostgreSQL作为其后端数据库。我用EF核心作为ORM。

    应用程序具有身份验证/授权需求,因此在启动应用程序时, 我正在使用管理员用户帐户对数据库进行种子设定 . 当地一切都很好。

    我现在希望将应用程序部署到服务器。我已经部署了代码,并且使用了ef core的迁移命令来获取在远程数据库上创建表的脚本。这也进展顺利。

    现在的问题是种子数据 . 我不知道将种子数据移出生产数据库的最佳方法是什么。

    到目前为止我做了什么?

    通过pgadmin,我创建了数据库中记录的简单备份。这是一个 screencast of exactly how 我做到了,我不确定这是否是正确的方法,但生成的脚本“看起来不错”。

    然后,我通过ssh登录到我的生产服务器,并将用户切换到postgres用户,并运行以下命令:

    psql -f phoneden-data.sql "Phoneden-Db-C3del"
    

    这似乎可行,我运行了下面的select语句,并且可以看到我的记录:

    SELECT * FROM "AspNetUsers";
    

    我的记录在中,但当我尝试使用管理员用户登录时,它说它无法验证我的登录详细信息。

    所以我把数据从本地数据库移到生产数据库的方式有问题。

    我做错什么了?

    1 回复  |  直到 7 年前
        1
  •  1
  •   J86    7 年前

    原来是权限问题。Postgres数据库的所有者拥有0个特权,在授予了所需的各种特权之后,所有这些特权都开始工作。