So I created a simple table with MySQLAlchemy, and everything works pretty fine.
My code.
from app import db
from werkzeug.security import generate_password_hash, check_password_hash
class register_users(db.Model):
__tablename__='new_user'
id=db.Column(db.Integer,primary_key=True, autoincrement=True)
name=db.Column(db.String(120), nullable=False)
email=db.Column(db.String(100), nullable=False)
date_of_birth=db.Column(db.DateTime(100), nullable=False)
hash_password=db.Column(db.String(1000), nullable=False)
@property
def password(self):
raise AttributeError('password is not a readable attribute')
@password.setter
def password(self, password):
self.hash_password=generate_password_hash(password)
def verify_password(self, password):
return check_password_hash(self.hash_password,password)
def __repr__(self):
return '<name % >r'% self.name
However, when I try to update the table with a new column or command, I get a bad error:
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1050, "Table 'new_users'
already exists")
[SQL:
CREATE TABLE `New_users` (
id INTEGER NOT NULL AUTO_INCREMENT,
name VARCHAR(120) NOT NULL,
email VARCHAR(100) NOT NULL,
date_of_birth DATETIME NOT NULL,
hash_password VARCHAR(1000) NOT NULL,
PRIMARY KEY (id),
UNIQUE (email)
)
I know the upgrade command is supposed to update the information of an already existing database table, however, it is like my upgrade command is trying to creat a new table all over again when I had already created the table.
I have looked through all other similar posts, but I have not been able to find something that solves my problem. Please help.
Try