【问题标题】:Production and development database in Django 1.8Django 1.8 中的生产和开发数据库
【发布时间】:2016-01-15 10:53:30
【问题描述】:

如何在 Django 1.8 中分离生产和开发数据库?

目前,我正在以一种天真的方式使用相同的数据库进行开发和生产。部署时,开发数据库复制到生产环境 (SQLite)。

在 Django 1.8 中执行此操作的正确方法是什么?此外,如何在不丢失以前数据的情况下更新生产表?

【问题讨论】:

    标签: django


    【解决方案1】:

    嗯,首先,我真的建议你不要在生产中使用 sqlite。如果你坚持,我会做的是在项目结构之外制作一个 sqlite 文件的副本,并使用一个额外的设置文件仅用于实时,例如 settings_live.py 并用正确的路径覆盖 DATABASES 设置:

    from myproject.settings import *
    
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3',
            'NAME': ...,  # the correct path file name here
        }
    }
    

    确保在生产环境中指定正确的设置文件。例如,对于 wsgi:

    os.environ.setdefault('DJANGO_SETTINGS_MODULE', wsgi_app + '.settings_live')
    

    【讨论】:

      【解决方案2】:

      更新

      Marina Mele 写了一篇关于dual environment setup“事物”的详尽文章。


      在我的设置中,我有 2 或 3 个不同的 virtualenvs

      我还有一个主settings.py,其中包含从主继承并满足每个虚拟环境的基本参数和不同设置。

      这个想法被描述为herehere

      在我的.virtualenvs/bin/activate 文件中,我将路径附加到相关设置文件:

      DJANGO_SETTINGS_MODULE=air.settings.settingst
      export DJANGO_SETTINGS_MODULE
      

      这样,我为同一个项目的每个环境都有一个单独的数据库。

      【讨论】:

        猜你喜欢
        • 2012-04-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-18
        • 1970-01-01
        • 1970-01-01
        • 2012-06-01
        相关资源
        最近更新 更多