Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 尝试迁移数据库时出错(slalchemy,slqite3)_Python_Sqlite_Flask_Sqlalchemy_Alembic - Fatal编程技术网

Python 尝试迁移数据库时出错(slalchemy,slqite3)

Python 尝试迁移数据库时出错(slalchemy,slqite3),python,sqlite,flask,sqlalchemy,alembic,Python,Sqlite,Flask,Sqlalchemy,Alembic,我有下一个models.py文件: from app import db, bcrypt from sqlalchemy import ForeignKey from sqlalchemy.orm import relationship class BlogPost(db.Model): __tablename__ = "posts" id = db.Column(db.Integer, primary_key=True) title = db.Column(db

我有下一个models.py文件:

from app import db, bcrypt
from sqlalchemy import ForeignKey
from sqlalchemy.orm import relationship


class BlogPost(db.Model):

    __tablename__ = "posts"

    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String, nullable=False)
    desc = db.Column(db.String, nullable=False)
    author_id = db.Column(db.Integer, ForeignKey('users.id'))

    def __init__(self, title, desc):
        self.title = title
        self.desc = desc

    def __repr__(self):
        return "Titulo >> " + self.title

class User(db.Model):

    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String, nullable=False)
    email = db.Column(db.String, nullable=False)
    password = db.Column(db.String, nullable=False)
    posts = relationship("BlogPost", backref="author")

    def __init__(self, name, email, password):
        self.name = name
        self.email = email
        self.password = password

    def __repr__(self):
        return "Usuario >> ", self.name
然后我跑:

python manage.py db init
python manage.py db migrate
一切都很好,问题是当我试图修改我的模型文件进行迁移时。。我只是换句话:

self.password = password
致:

当我跑的时候:

python manage.py db init
python manage.py db migrate
它可以工作,但当我尝试升级时:

python manage.py db upgrade
我得到下一个错误:

"No support for ALTER of constraints in SQLite dialect")
NotImplementedError: No support for ALTER of constraints in SQLite dialect

注意:数据库只有一些用于测试的记录。。谢谢大家!

自从Alembic的大多数教程编写以来,Alembic已经改变了SQLite迁移的方式<现在需要使用code>ALTER命令。如果以后决定从SQLite切换,此模式仍然与其他数据库兼容

对于要更改的每个表,将所有操作放在带有op.batch\u alter\u table('table\u name'):块的

def upgrade():
    with op.batch_alter_table('table_name'):
        op.alter_column(...)