如何在SQL Alchemy ORM中删除SQLite表?

时间:2017-09-12 10:41:24

标签: python sqlite terminal sqlalchemy flask-sqlalchemy

所以,这是我的问题

我正在使用SQLAlchemy ORM

在Flask上创建应用程序

现在的问题是,我可能搞砸了创建表用户;

在models.py代码中,

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50))
    username = db.Column(db.String(25), unique=True)
    password = db.Column(db.String(50))
    email = db.Column(db.VARCHAR(50), unique=True)
    registerdate= db.Column(db.DateTime) 

    def __init__(self,
        name,
        username,
        password,
        email,
        registerdate=None):
        self.name = name 
        self.username = username
        self.password = password
        self.email = email
        if registerdate is None:
            registerdate = datetime.utcnow()
        self.registerdate = registerdate

现在,错误就像是

OperationalError: table User has no column named user_name

这是因为我弄乱了表创建,用列" user_name"创建表。首先,当它给我一个与下划线有关的错误时,我试图修改代码但是又遇到了另一个错误......

那么如何删除之前的用户' SQL Alchemy ORM中的表没有使用通常的sqlite3语法和命令?

P.S:我使用的是ubuntu 16.04 python终端,没有像Atom或Pycharm那样的IDE和东西......

1 个答案:

答案 0 :(得分:-2)

好吧!因此被引擎混淆后#39;以及关于sqlite的大量其他技术问题,

我终于有了解决方案!

首先通过Ubuntu终端进入python终端......然后执行,

    from YourProject import app,db
    from YourProject.models import Table1,Table2....User  #import the classes whose data you want to manipulate
    import sqlite3
    con = sqlite3.connect('ABSOLUTE PATH TO YOUR DB FILE')
    c = con.cursor()
    c.execute("DROP TABLE User;")
    db.session.commit()                     #i am a bit unsure about this one

就是这样,那就是我如何删除我的麻烦用户'用户'表。然后我创建了一个新的,它可以创造奇迹!

此外,我的用户类代码以前格式不太好,如

def __init__(self,name,username,password,email,registerdate=None):
    self.name = name 
    self.username = username
    self.password = password
    self.email = email
    if registerdate is None:
        registerdate = datetime.utcnow()
    self.registerdate = registerdate

注意,“楼梯”中的“班级”参数是如何进行的。形成之前?这也让我在创建表格和向其添加数据时遇到了麻烦。所以一定要照顾好。

这是初学者可能遇到的问题,并且发现令人生畏,希望我能帮助别人!

干杯!