gpt4 book ai didi

django - 使用 bash 脚本删除 django 的数据库设置

转载 作者:太空宇宙 更新时间:2023-11-04 11:55:54 24 4
gpt4 key购买 nike

我正在尝试创建一个 bash 脚本来创建一个适合我公司的样板 django 项目。我需要删除 settings 中的 DATABASES 并添加新的。DATABASES 是一个具有结构的 python 字典

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}

为此我尝试了这样的事情

sed -i -e "/DATABASES = {/,/}/d" settings.py

但它导致尾随}。

输出是

}

我知道它匹配的模式是第一个花括号而不是第二个。应该采用什么方法。

最佳答案

为什么不在设置的末尾附加一个新的 DATABASE 配置?它将自动覆盖以前的 DATABASE 配置。我这样使用:

    DBCONIG="DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '${dbName}',
'USER': '${dbUName}',
'PASSWORD': '${dbPass}',
'HOST': '127.0.0.1',
'PORT': '3306',

}
}"
echo $DBCONIG >> settings.py

这里我从 shell 输入中收集 dbName, dbUName 等。

为了更简洁的实现方法,我保留了一个 local_settings.py,它具有用户机器特定的设置。在 local_settings.py 中,我放置了用户的数据库配置。然后我将此文件导入 settings.py 中,如下所示:

try:
from .local_settings import *
except:
pass

此外,我通常将 local_settings.py 文件放在 .gitignore 中,这样这些设置就不会被推送到存储库。

关于django - 使用 bash 脚本删除 django 的数据库设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54326941/

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