【问题标题】:Set default collation settings in django model在 django 模型中设置默认排序规则设置
【发布时间】:2014-05-28 06:39:22
【问题描述】:

Django documentation 说默认排序规则是 'utf8' 但它不是。每次我运行 syncdb 创建新表时,所有字符字段的默认排序规则都是“latin1_swedish_ci”。

同样的文档也说

Django 没有提供在模型定义上设置它的方法。

还有其他方法可以强制 django 的 syncdb 对字符字段使用特定的排序规则吗?

【问题讨论】:

标签: python django


【解决方案1】:

通常(更改字符集和排序规则)您可以使用迁移,例如:

# -*- coding: utf-8 -*-
# Generated by Django 1.11.10
from __future__ import unicode_literals

from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('some_model', 'A_previous_migration'),
    ]

    operations = [
        migrations.RunSQL('ALTER TABLE some_table CHANGE column_name column_name VARCHAR(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;'),
    ]

尽管你描述的行为很奇怪,所以也许有更好的方法来解决你的特定问题。

【讨论】:

    猜你喜欢
    • 2012-08-24
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 2012-07-03
    • 2014-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多