【问题标题】:How to add another app to an existing Django project?如何将另一个应用程序添加到现有的 Django 项目?
【发布时间】:2013-07-30 16:11:50
【问题描述】:

我将我的 Django 项目部署到 Heroku。现在,我想将另一个应用程序添加到我现有的项目中。如何在不创建新数据库的情况下做到这一点 - 我的意思是我现有的数据库不应该被删除?

【问题讨论】:

    标签: django heroku


    【解决方案1】:

    您可以在使用模型定义推送新应用后运行 heroku run python manage.py syncdb。这不会删除您的数据库。不过考虑安装 South。

    【讨论】:

    • 对不起,我在这里有点困惑。因此,如果我将我的应用程序从 git 推送到 heroku,它不会覆盖现有文件吗?
    • 没有。它不会,就像推送到 github 不会覆盖您的文件一样。
    • 好的。你会推荐哪一个?下载现有的源代码并添加额外的文件并将其再次推送到heroku,还是按照您告诉我的方式进行?对不起,如果我这些是基本问题。我对 django 部署相当陌生:)
    • 那么您的计算机上没有原始存储库吗?你做了什么改变?你不是在编辑原始代码库吗?如果您不知道如何使用 git,这一切都将毫无意义。在使用 Heroku 之前,您需要了解 git 的工作原理。
    • 是的,我没有原始存储库。那就是问题所在。我想知道我是否可以做 git clone?
    【解决方案2】:

    使用 PyPI

    如果您要安装的应用在 Python Package Index 上可用,您可以在 requirements.txt 文件中添加添加的名称和要使用的版本,例如:

    app_name==1.2.3
    

    然后,在您的 project/settings.py 文件中,将 app_name 作为字符串添加到 INSTALLED_APPS 列表中。例如,如果 INSTALLED_APPS 看起来像这样:

    INSTALLED_APPS = (
       'django.contrib.admin',
       'django.contrib.auth',
       'django.contrib.contenttypes',
       'django.contrib.sessions',
       'django.contrib.messages',
       'django.contrib.staticfiles',
    )
    

    然后添加新应用即可:

    INSTALLED_APPS = (
       'django.contrib.admin',
       'django.contrib.auth',
       'django.contrib.contenttypes',
       'django.contrib.sessions',
       'django.contrib.messages',
       'django.contrib.staticfiles',
       'package_name',
    )
    

    使用 git

    您可以按照与上述相同的步骤进行操作,但不要添加app_name==1.2.3,而是添加:

    git+git://github.com/owner_name/app_name#egg=app_name
    

    适当地替换 owner_name 和 app_name。这会克隆您指向的存储库,因此请确保它是公共的,或者如果它是私有的,则您具有 ssh 访问权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-16
      • 2019-02-13
      • 2021-05-18
      • 2010-11-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多