问题标签 [django-migrations]

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.

0 投票
3 回答
5180 浏览

django - Django 1.7 中的迁移

我目前参与了一个使用 Django 1.7 开发版本的项目。我想使用“makemigrations”和“migrate”将我在模型中所做的更改(添加字段、删除模型等)传播到数据库模式中” 命令。我在我的应用程序中的一个模型中添加了一个“年龄”字段。

当我使用“makemigrations”命令时,输出就像---“未检测到更改”。我猜“makemigrations”无法弄清楚对架构所做的更改。有什么建议可以让它工作吗?

0 投票
1 回答
765 浏览

python - 更改生成的迁移文件的基本路径

在 django 1.7 中,使用提供的makemigrations命令(不是来自 South),有没有办法更改生成的迁移文件的存储位置?

我将这些文件置于版本控制之下,对于从 Django 的 contrib 导入的应用程序,它们会在应用程序目录中生成,该目录位于我项目的根路径之外。

例如,auth在我的例子中,该应用程序获取在此位置生成的文件:

/home/dev/.envs/myproj/lib/python2.7/site-packages/django/contrib/auth/migrations/0002_group.py

谢谢

0 投票
11 回答
93794 浏览

django - 如何简化 Django 1.7 中的迁移?

South 已经有类似的问题,但我已经使用 Django 1.7 开始了我的项目,并且没有使用 South。

在开发过程中,已经创建了很多迁移,但是该软件尚未交付,并且不存在必须迁移的数据库。因此,我想重置迁移,就好像我当前的模型是原始模型一样,并重新创建所有数据库。

推荐的方法是什么?

编辑:从 Django 1.8 开始,有一个名为squashmigrations的新命令或多或少地解决了这里描述的问题。

0 投票
2 回答
1318 浏览

python - Django 1.6 版教程

我正在尝试遵循本教程:https ://docs.djangoproject.com/en/dev/intro/tutorial01/

我正在使用 Django 1.6.5。看来教程中使用的版本与我的完全不同。例如,migrate在 my 中没有可用的 - 相关命令manage.py。我通过下载 South 库并输入syncdb而不是migrate. 但现在教程要我输入:

South 和原来的 Django 都没有。我注定要失败吗?我是否必须安装更高版本的 Django?这对我来说似乎很奇怪,因为这样做很烦人。安装 1.6 是迄今为止最容易安装的。

0 投票
1 回答
338 浏览

python - 从 Django1.7 开始,“迁移”进入了核心。它类似于“南”吗?

我正在使用south迁移。今天意外发现一篇有趣的文章,django1.7 support migrations

有趣的是,我发现该startapp命令甚至创建了一个文件夹migrations

有树:

我还找到了 command ./manage.py makemigrations,它类似于:

./manage.py schemamigration myapp --initial或者./manage.py schemamigration myapp --auto

那么呢datamigration??

也找到了 command ./manage.py migrate,我希望它类似于 south 的./manage.py migratecommand 。

所以里面没有./manage.py syncdb命令django1.7??

0 投票
4 回答
66131 浏览

django - How to add a new field to a model with new Django migrations?

I'm using the contribute_to_class method but I don't know how to create the field in the database with new migrations.

0 投票
0 回答
51 浏览

django - Django -south - 检查迁移中的现有表

我的一些迁移应该只在满足某些条件时运行 - 主要是因为使用南迁移 django.contrib 的错误性质。转换为我们自己的用户模型时需要。但是由于这些迁移应该自动运行,我不能指望“--fake”——有时我需要运行它们,有时不需要——auth_permissions例如,取决于关系是否存在。我可以在迁移部分使用 south/django ormforward来检查现有关系并在 a 中运行迁移if clause吗?

我尝试在迁移中使用 try/except,但它似乎会导致错误(目前无法重现,我不再有此代码)

我怎样才能做到这一点?谢谢您的帮助!

使用 Django 1.6.4 和南 0.8.4

0 投票
2 回答
4352 浏览

django - 为什么 Django 中没有“ListField”?

我有一个带有属性的模型Charfield(让我们将其命名为优点)。choices一段时间后,我决定应该将该字段“升级”为某种ListField,因为可以选择多个选项。

根据我的搜索,我有两个选择:

1 - 创建一个新模型,并在引用此新模型的第一个模型中使用 ManyToManyField。这样,将呈现 admin 中使用的“多选”默认字段。生活很好。

2-创建一个自定义字段,将我的字段保存为带有某种分隔符的字符串。

这两种方法在 Django 模型中存储列表的最有效方法是什么?以及更多示例中的第二种方法:如何在 django 中创建列表字段http : //cramer.io/2008/08/08/custom-fields-in-django/,https: //djangosnippets.org/snippets/1200 / , https://djangosnippets.org/snippets/1491/

事实是:我不想创建另一个模型只是为了拥有ManyToManyField. 这是我拥有的选择的受控列表(并且不希望人们添加新项目)并认为为此创建一个表是多余的(尽管我可以为该表创建一个固定装置而不在中注册模型admin.py,所以人们不会添加新项目。但是我不知道在更改固定装置中的这些值时迁移将如何工作,而在过去我只是偶然在我的模型定义中选择元组)。

...并创建一个新的自定义字段,我不知道。从长远来看,这似乎是个问题,因为我不知道其含义、升级 Django 时的问题等。

为什么没有内置ListField?从长远来看,我正在考虑的两种方法有哪些问题?我打算做第一个,但我对迁移有点迷茫。

0 投票
2 回答
5944 浏览

django - Django 1.7 同步未迁移的应用程序

我开始了我的模型:

myapp.models.py

然后运行./manage.py migrate我的新项目,一切都很好:

然后我改变了我的模型:

我又跑./manage.py migrate了,什么也没发生。

我想知道我需要做什么才能使我的新应用程序迁移?

0 投票
2 回答
2272 浏览

python - Django中的重复模型字段

重复的模型字段给我带来了麻烦(运行网页时没有这样的表 appname_modelname)。每当我执行 ./manage.py migrate appname 时,它​​都会给我“重复字段”。我检查了我的models.py,那里只有一个。如何删除该重复字段?似乎无论我做什么,它都会留下来。我试过了:

  • 删除数据库

  • 删除应用程序文件夹中的迁移文件夹

  • 执行 ./manage.py sqlclear south,然后在 dbshel​​l 中删除 south_migrationhistory 表

  • ./manage.py schemamigration appname --initial, ./manage.py migrate appname --fake

我已经没有想法了。