账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Flask远端mysql数据库更新表失败
    49
    0

    1、学习Flask,windows pycharm编写,数据库是虚拟机上的MySQL,现在情况是创建数据库没有问题,但是进行数据库迁移总是报错,使用本地sqlite迁移没有报错,但似乎会将表清空了,我未做任何表修改,按道理应该保持原样才对!
    错误如下:
    File "D:Pythonpythonflaskmicroblogdb_repositoryversions001_migration.py", line 9, in <module>

    Column('id', INTEGER(display_width=11), primary_key=True, nullable=False),

    TypeError: object() takes no parameters

    Process finished with exit code 1

    生成的迁移脚本感觉有点问题:

    deptments = Table('deptments', pre_meta,
        Column('id', INTEGER(***display_width=11***), primary_key=True, nullable=False),
        Column('dname', VARCHAR(length=10)),
    )
    
    followers = Table('followers', pre_meta,
        Column('follower_id', INTEGER(***display_width=11***)),
        Column('followed_id', INTEGER(***display_width=11***)),
    )

    2、使用的迁移脚本是教程中的,不多针对的是本地sqlite的
    脚本如下:

    # /usr/bin/python
    # -*- coding:utf-8 -*-
    __author__ = 'summer'
    import imp
    from migrate.versioning import api
    from app import db
    from config import SQLALCHEMY_MIGRATE_REPO
    from config import SQLALCHEMY_DATABASE_URI
    
    migration = SQLALCHEMY_MIGRATE_REPO + '/versions/%03d_migration.py'%\
                                          (api.db_version(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO)+1)
    tmp_module = imp.new_module('old_model')
    old_model = api.create_model(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO)
    exec old_model in tmp_module.__dict__
    
    script = api.make_update_script_for_model(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO, tmp_module.meta, db.metadata)
    open(migration, 'wt').write(script)
    api.upgrade(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO)
    
    print 'New migration saved as ' + migration
    print 'Current database version: ' + unicode(api.db_version(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO))

    有遇到的指点一二,多谢!

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版

    回答动态

    师傅被妖怪抓走了:发布了悬赏问题火爆全网的“元宇宙”到底是什么?预计能赚取 1积分收益
    酒后略带风情:发布了悬赏问题Android内存中Graphics与Code占用过高预计能赚取 10积分收益
    扛起拖把扫天下:发布了悬赏问题typescript如何导出接口配置?求解,谢谢!预计能赚取 10积分收益
    发布了悬赏问题Vue 如何改变返回页面的路径?如让B页面只能返回到A页面.预计能赚取 11积分收益
    发布了悬赏问题vue H5移动端;底部bottom固定定位,安卓弹起键盘导致页面变形如何解决?预计能赚取 10积分收益
    发布了悬赏问题请问为什么tomcat8.5 GET请求中文正常,POST请求还需要设置UTF-8.预计能赚取 10积分收益
    发布了悬赏问题vue2.5+ts创建以及引入jq的方法预计能赚取 11积分收益
    情场浪女:发布了悬赏问题import ggplot时报错module 'pandas' has no attribute 'tslib'预计能赚取 10积分收益
    见心书画许老师18753375161:发布了悬赏问题echarts3 legend禁止点击事件,允许悬浮事件预计能赚取 11积分收益
    aa_92cb0bd09f:发布了悬赏问题codewar上的一个问题预计能赚取 11积分收益