gpt4 book ai didi

django - 在本地为 Django 使用 SQLite,在服务器上使用 Postgres

转载 作者:搜寻专家 更新时间:2023-10-30 20:08:23 26 4
gpt4 key购买 nike

我开始将 Django 开发作为一个业余项目。到目前为止,我一直愉快地使用 SQLite,无论是在开发(即使用 py manage.py runserver)还是在部署(在 Nginx + uWSGI 上)。现在我也想学习使用更强大的 PostgreSQL 数据库。但是,如果可能的话,我想跳过本地安装,以避免在 Windows 上安装 Postgres。

我想知道是否可以通过 Django 在部署中使用内置服务器和 Postgres 时使用 SQLite,而无需更改项目代码。找不到如何操作。

我可以使用变通方法,让我的部署过程在每次部署时更改服务器上的设置。但这有点像 hack。

最佳答案

您可以将 settings.py 拆分为多个设置文件,例如

[projectname]/
├── [projectname]/
│ ├── __init__.py
│ ├── settings/
│ │ │── base.py
│ │ │── development.py
│ │ │── production.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py

您的 base.py 包括您当前 settings.py 中的所有代码。在 development.py(sqlite3) 和 production.py (postgresql) 中指定不同的数据库,并在每个数据库中导入 base.py

from .base import *

最后但同样重要的是,您必须告诉 django 它应该使用哪个文件。添加

export DJANGO_SETTINGS_MODULE="projectname.settings.development"

在你的开发服务器上你的 virtualenv 的 postactivate 和

export DJANGO_SETTINGS_MODULE="projectname.settings.production"

在您的生产服务器上。不要忘记

unset DJANGO_SETTINGS_MODULE

在您的预停用中。

更多信息在这里:http://www.marinamele.com/taskbuster-django-tutorial/settings-different-environments-version-control顺便提一句。包含大量最佳实践的精彩教程

关于django - 在本地为 Django 使用 SQLite,在服务器上使用 Postgres,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40687373/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com