将数据库表级约束添加到django模型的元

django-db-constraints的Python项目详细描述


#django db constraints

\

向django模型的元类添加数据库表级约束,并让“makemigrations”添加适当的迁移。

``python
class foo(model s.model):
bar=models.integerfield()
baz=models.integerfield()

class meta:
db-constraints={
“bar-equal baz”:“check(bar=baz)”,
}
```


这应该会生成如下迁移:

``python
类迁移(migrations.migration):

initial=true

dependencies=[
]

operations=[
migrations.createmodel(
name='foo',
fields=[
('id',models.autofield(auto_created=true,primary_key=true,serialize=false,verbose_name='id'),
('bar',models.integerfield()),
('baz',models.integerfield()),
],
django-db_-constraints.operations.alterconstraints(
name='foo',
db_constraints={bar_equal_baz':'check(bar=baz)},
],
]
`````


>应用的结果sql:

```sql
create table“sample_foo”(“id”serial not null主键,“bar”integer not null,“baz”整数不为空)
alter table“sample_foo”add constraint“bar_equal_baz”check(bar=baz)
````

](https://github.com/rapilabs/blog/blob/master/articles/same parent db pattern.md))

``python
类栏(models.model):
baz=models.integerfield()

class meta:
唯一的一个单元=('id',‘baz’)



foo类(models.model):
bar=models.foreign key(bar)
baz=models.integerfield()


class meta:
db-u-constraints={
‘composite-fk’:‘foreign-key(bar-id,baz)references sample-bar(id,baz)’,
}
````

结果是:

``sql
``alter table“sample_foo”add constraint“composite_fk”外键(bar_id,baz)引用sample_bar(id,baz)
```

它们只是添加到迁移操作列表的末尾。这包括删除约束中使用的字段的操作,因为数据库丢弃也将有任何相关的
约束(至少与PostgreSQL)。
BR/>警告> BR/> BR/>有可能在数据库中声明约束的情况下,但由于数据库丢失,数据库中不存在约束。当删除约束中的字段时隐式约束。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java从JTextArea获取文本,并将其调用到ActionPerformed方法   servlet中创建java json对象时出错   java将ActionListeners添加到按钮数组中   java防止圆联合上的死锁   java Google Play Services“登录失败。请检查您的网络连接并重试”   java spring mvc,css不起作用   java在jfreechart上显示标签   使用TestNG的selenium automation中出现java“未找到任何测试。未运行任何内容”错误   BufferedReaderJava。伊奥。IOException:流已关闭   java希望为所有表形成一个通用的更新查询   java仅当元音不以单词开头时才删除元音   java一个Spring项目中有多少配置文件?   java当数组中有参数时,如何发送post请求?   java如何使用Zuul中的CORS作为API网关+AngularJS+微服务   Java是否有不需要添加显式jar引用的内部JSON库?   java JavaFX CheckBoxTreeItem选择   java自定义布尔反序列化器在Gson中不工作