zoukankan      html  css  js  c++  java
  • 在SAE上同步djanogo的mysql数据库

    折腾了一个下午,终于搞掂了把djanogo应用的mysql数据库导入到SAE上了,归根到底麻烦的根源是SAE限制多多。下面简单记录一下过程以备日后参考使用。

    首先还是修改settings.py,把数据库设置部分修改如下,以便在线上,或是在本机也能调用到数据库:

    if 'SERVER_SOFTWARE' in os.environ:
        from sae.const import (
            MYSQL_HOST, MYSQL_PORT, MYSQL_USER, MYSQL_PASS, MYSQL_DB,
        )
    else:
        MYSQL_HOST = 'localhost'
        MYSQL_PORT = '3306'
        MYSQL_USER = 'local_user'
        MYSQL_PASS = 'local_passwd'
        MYSQL_DB = 'app_cjyfff'
    
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': MYSQL_DB,
            'USER': MYSQL_USER,
            'PASSWORD': MYSQL_PASS,
            'HOST': MYSQL_HOST,
            'PORT': MYSQL_PORT,
        }
    }

    SAE的文档说可以线上创建自己的数据库的,但是我找了半天都没找到创建选项,只看到一个默认存在的数据库(本例中的app_cjyfff,这个名字取决于你所创建的app名称),于是我只好也在本地mysql上创建一个同名的数据库。注意创建时指定utf-8编码,否则中文会出现乱码。另外SAE对于个人用户,数据库只支持MyISAM引擎,所以在创建数据库之前记得修改my.cnf把默认引擎改为MyISAM。创建好app_cjyfff这个数据库后,到django的目录执行python manage.py syncdb命令在数据库中创建表,然后用mysqldump导出为sql文件。另外还要注意的是,可能由于SAE没有开放LOCK、UNLOCK的操作权限给用户,因此假如sql文件中有LOCK、UNLOCK语句的话会导致导入失败。把sql文件中的LOCK、UNLOCK语句删除即可。然后用SAE自带的phpMyAdmin把这个sql文件导入到SAE中吧。

  • 相关阅读:
    Uploadify跨域上传原理
    C#中HttpClient使用注意:预热与长连接
    前端必读:浏览器内部工作原理
    从零开始学习jQuery
    ManualResetEvent 类的用法
    线程池用法的改进
    我的第一篇博客
    Es6新语法 let篇
    如何测试解析是否生效?
    主机记录和记录值(域名服务器绑定详解)
  • 原文地址:https://www.cnblogs.com/cjyfff/p/3726249.html
Copyright © 2011-2022 走看看