【问题标题】:how to sync django models with pre-existing database?如何将 django 模型与预先存在的数据库同步?
【发布时间】:2014-04-29 06:23:09
【问题描述】:

我很难为我的项目提出合理的设计。我有一个现有的 Postgres 数据库,该数据库会从其他 Python 脚本中不断更新。 基于 Django 框架构建的 Web 服务器将访问 Postgres 数据库以仅更新用户模型并显示登录用户的博客信息。博客信息是其他 Python 脚本在一夜之间更新的内容。

现在我的问题是,如果我必须 syncdb 我的 blog model 使用现有的 Postgres 数据库,那会导致任何问题吗? 例如:

models.py
class Blog:
   title=...
   content=...
   author=....

假设我的名为 mydb 的 Postgres 数据库有很多表,其中一个是 blog 表,其中包含 titlecontentauthor 的列。 如何使我的模型与现有数据库同步? 现在假设我在我的数据库中添加了一个新列 date of entry

如果我只是将模型更新为:

class Blog:
   title=...
   content=...
   author=....
   date of entry=...

它会起作用吗?

这里有哪些潜在问题以及针对这些问题的更简单解决方案?

P.S:我过去使用过South。但这里的情况不同。从 Django 的角度来看,我使用的是只读的 db,目前不需要数据迁移。

【问题讨论】:

    标签: django postgresql django-models django-database


    【解决方案1】:

    如果您的数据库是只读的,则不必执行syncdb。在模型上使用managed=Falsedb_table meta option 指定它对应的表名,并使用likewise 指定字段列名。

    如果您还没有,请参阅the doc on legacy databases 了解更多信息。

    【讨论】:

    • 我唯一担心的是我需要 syncdb 来同步用户模型。我怎么能不避免呢?
    • 然后使用syncdbmanaged=False 不会影响您的模型。
    猜你喜欢
    • 2015-12-07
    • 1970-01-01
    • 2017-12-27
    • 2015-08-11
    • 2015-07-16
    • 2020-05-23
    • 1970-01-01
    • 2018-11-25
    • 2011-09-19
    相关资源
    最近更新 更多