使用Django信号机制实现MySQL库初始化

From Evernote:

使用Django信号机制实现MySQL库初始化

最近翻写了一个Django项目,其中使用MySQL记录一些日志,所说这个日志的量会比较大,所以需要分表,这可就麻烦了,在Django里处理这种问题似乎还没有较好的办法。我的实现方法是用MySQL的事件和存储过程,让它自己分表,写完了SQL后效果还不错,但是如果在交付的时候,还要别人手工执行下这些SQL语句似乎不大好,于是上网找了下,发现其实是可以用Django自带的信号机制,在syncdb完成之后额外地运行任何想执行的代码。 实现方法是在app目录下建一个management.py脚本,内容如下即可:
#coding:utf8
from django.dispatch import receiver
from django.db.models.signals import post_syncdb
from django.db import connection
from appname import models

@receiver(post_syncdb, sender=models)
def init_event(sender, **kwargs):
cursor = connection.cursor()
cursor.execute(‘set global event_scheduler = on’)
cursor.execute(‘sql’)

Advertisements
此条目发表在未分类分类目录。将固定链接加入收藏夹。

2 Responses to 使用Django信号机制实现MySQL库初始化

  1. jacky说道:

    求Django分表方案啊,可不可以把方法发我邮箱

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s