问题标签 [django-south]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - 在 Django 模型中包含所有内容是否明智?
我刚刚继承了一个用于维护和持续开发的 Django 项目。虽然我是一个相当精通的程序员(也是 Python),但我几乎没有使用 Django 的经验,因此我需要对我的想法进行一些理智的检查;)
当前的问题是:项目包含一个自定义install.sh
文件,它做了三件事:
- 创建一些非模型数据库并通过 SQL 导入初始数据
- 使用导入夹具
manage.py
- 通常的
migrate.py syncdb
和migrate.py migrate
。
(install.sh
还包含一些逻辑来实现半生不熟的south
依赖管理,我用原生的代替)
我的想法如下:
- 为每个非模型数据库表生成模型(
manage.py inspectdb
首先,在应用程序中拆分)。 - 将所有非
south
模型转换为south
- 将初始 SQL 数据转换为
south
夹具 - 将数据库备份例程转换为
manage.py dumpdata
(并恢复到manage.py loaddata
固定装置)。 - 不再使用原始 SQL
现在简单的问题是:这个计划是否明智?有哪些替代方案?
django - 使用 manage.py syncdb 时,Django 在 virtualenv 中找不到应用程序
我的问题是让 manage.py syncdb 在 virtualenv 中运行。
它一度运行良好,但似乎在我安装 South 并更新 pip 和分发时出现故障。
无论如何,当 virtualenv 被激活时,我可以在交互式解释器中很好地导入应用程序。通过 mod_wsgi 运行,应用程序也被导入,并且站点可以运行。
当我运行 manage.py syncdb 时,它无法在我的 virtualenv 中的 INSTALLED_APPS 中找到任何应用程序。它可以很好地选择系统安装的应用程序,但在尝试仅导入 virtualenv 应用程序时失败。
django - 南 django 迁移
我安装了南,我现在尝试使用它进行迁移:
./manage.py schemamigration myapp --initial
我得到一个:
-bash:./manage.py:权限被拒绝
如果我 sudo 我得到:
sudo: ./manage.py: 找不到命令
回复。
怎么了?
谢谢!
django - 南 django 迁移
我已经做了:
成功地。
但如果我输入:python manage.py migrate TestDBapp1
我明白了:sqlite3.OperationalError: table "TestDBapp1_xyz" already exists
可能是什么问题呢?
python - Django South 从 SQLite3 模式中删除外键 REFERENCES。为什么?这是个问题吗?
使用syncdb
以下架构时创建:
使用时migrate
,改为:
为什么南方会这样做?我还没有注意到功能问题,但我厌倦了忽略这一点......
有人可以阐明这里发生的事情吗?
django - South 是包时不识别型号
我将South用于我的 Django 站点的架构和数据迁移。我很高兴使用它。有一天,我将models.py
文件转换models/__init__py
为models/something.py
. 当我跑步时,尽管有新的课程python manage.py schemamigration app --auto
,我还是收到了消息。如果我将它们复制到文件中,South 已经识别出新模型。我试图从顶部导入所有内容,但没有任何变化。Nothing seems to have changed.
something.py
__init__py
something
__init__py
django - 使用 PostgreSQL 配置 django south
我无法让我的网站在南方运行。我已经成功安装了南,我可以成功地“导入南”。
但是,一旦我将 'south' 添加到 INSTALLED_APPS,并运行 ./manage.py syncdb (以完成安装),我会收到以下错误:
您的数据库没有 South 数据库模块 'south.db.django.db.backends.postgresql_psycopg2'。请选择支持的数据库,检查 SOUTH_DATABASE_ADAPTER[S] 设置,或从 INSTALLED_APPS 中删除 South。
我正在使用 PostgreSQL 数据库和 postgresql_psycopg2 库。我很困惑,因为 Postgres 绝对是受支持的数据库。我是否需要在 settings.py 中手动配置 SOUTH_DATABASE_ADAPTER?
编辑:这是我的数据库设置。我知道它们可以工作——我试图让它运行的(测试)服务器已经与数据库正常通信了数周。
django - django.contrib.comments 将其添加到 installed_apps 后“未同步”
我想用 django.contrib.comments.models.Comment 的代理替换自制的评论对象。
我修改了我的 comments/models.py,将 django.contrib.comments 添加到我的 installed_apps 并将 COMMENTS_APPS 设置为我的评论应用程序的名称。
运行 python manage.py syncdb(我使用 South)时,我在“未同步”应用程序中得到“django.contrib.comments”,因此未创建相应的表。
如何创建与 django.contrib.comments 相关的表?
谢谢
朱利安
sql-server - 在 Sql Server 中删除 CASCADE
我正在使用 Sql Server 和 pyodbc 的 Django 项目中运行南迁移。这是向后迁移,所以南方试图删除我的一些表。
South 执行以下方法以删除表:
问题是 Sql Server 不支持级联丢弃,所以迁移失败并出现以下错误:
我想为 South 写一个补丁,以便它与 Sql Server 一起工作。模拟 DROP CASCADE 的最佳方法是什么?我认为使用 python 或纯 SQL 的两种解决方案都是有效的。
python - South 的 syncdb/migrate 创建输出页面?
我正在处理一个小型的个人 Django 项目,并且我已将 South(截至 2010 年 10 月 9 日的最新 mercurial)添加到我的项目中。
但是,每当我运行“./manage.py syncdb”或“./manage.py migrate”时,我都会得到大约 13 页(每页 40 行)的输出,仅与未找到“initial_data”文件有关。我没有任何 initial_data 也不是我真正想要的,但我获得了超过 200 次尝试为我的项目中的所有不同应用程序读取它们,包括 django 自己的应用程序。
有什么办法可以让南方安静下来?除了将它添加到我的 INSTALLED_APPS 元组并进行初始迁移之外,我没有给 South 任何输入,但是自从我安装它以来,我得到了这个烦人的输出。