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

班达里

我正在尝试创建一个 bash 脚本来创建一个适合我公司的样板 django 项目。我需要删除DATABASESinsettings并附加新的。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

在这里,我收集dbNamedbUName等从外壳输入。

为了更清晰的实现方法,我保留了一个local_settings.py具有用户机器特定设置的。在里面local_settings.py,我把用户的数据库配置。settings.py像这样导入这个文件

try:
   from .local_settings import *
except:
   pass

此外,我通常将local_settings.py文件放入 ..gitignore,以便这些设置不会推送到存储库。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章