我们有一个包含7000万行的InnoDB表,我们一直在尝试运行一个alter table语句来修改和添加几列.查询似乎已经改变了表,现在处于"将alter table提交到存储引擎"的状态.
START TRANSACTION;
ALTER TABLE table
MODIFY COLUMN column1 int(11) NOT NULL DEFAULT 0,
MODIFY COLUMN column2 tinyint(1) NOT NULL DEFAULT 1,
ADD COLUMN column3 int(11),
ADD COLUMN column4 int(11) NOT NULL DEFAULT 1,
ADD COLUMN column5 varchar(255);
COMMIT;
Run Code Online (Sandbox Code Playgroud)
这已经过夜了,现在是19小时.我们没有启用性能架构,因此无法查看估计的完成时间.我担心的是查询正在做什么以及查询是否会在被杀死时回滚.我已经看到其他问题涉及到复制到tmp表或等待表锁的查询.但是,当alter table提交时,我找不到任何关于被卡住的事情.
在此状态下终止查询是否安全,如果查询被终止,它是否会成功回滚?
服务器正在运行MariaDB 10.2
我已经从 mongo shell 为集合 X 创建了一个文本索引
db.X.ensureIndex({name: 'text', cusines: 'text', 'address.city': 'text'})
Run Code Online (Sandbox Code Playgroud)
现在,如果一个文档的 name 属性值为seasons,则其长度为 7
所以如果我运行查找查询(搜索字符串长度<= 5)
db.X.find({$text: {$search: 'seaso'}})
Run Code Online (Sandbox Code Playgroud)
如果我将搜索字符串更改为season (长度 >= 6) ,它不会返回任何值,然后返回文档。
现在我的问题是搜索字符串是否有一些最小长度限制来获取记录。如果是的话有什么办法可以改变吗?
我auth.Group想从模型创建一个代理模型,我想将其应用于permissions它。
代理
class InstitutionOwnerGroup(Group):
# Gestores
pk = 1
is_superuser = False
is_staff = False
class Meta:
proxy = True
permissions = (
('can_manage_institutions', 'Gerencia Instituições'),
)
Run Code Online (Sandbox Code Playgroud)
数据迁移
# Generated by Django 2.1.1 on 2018-10-14 23:30
from django.db import migrations
from horsy.apps.accounts.proxies import InstitutionOwnerGroup
def create_owner_group(app, _schema):
InstitutionOwnerGroup.objects.create(
name="Gestores"
)
class Migration(migrations.Migration):
dependencies = [
('accounts', '0002_add_admin_user'),
]
operations = [
migrations.RunPython(create_owner_group)
]
Run Code Online (Sandbox Code Playgroud)
管理面板中的Gestores模型:
给定的权限can_manage_institutions未应用于数据迁移中的模型。
如何通过使用django权限系统将权限应用于继承自的代理模型auth.Group?