The old source code for the user model from the server.py was this:
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True)
password = db.Column(db.String(120), unique=True)
email = db.Column(db.String(120), unique=True)
gender = db.Column(db.String(5), unique=True)
work = db.Column(db.String(33), unique=True)
city = db.Column(db.String(15), unique=True)
The server.sqlite will be this:[mythcat@desk my_flask]$ sqlite3 server.sqlite
SQLite version 3.26.0 2018-12-01 12:34:55
Enter ".help" for usage hints.
sqlite> .schema
CREATE TABLE user (
id INTEGER NOT NULL,
username VARCHAR(80),
password VARCHAR(120),
email VARCHAR(120),
gender VARCHAR(5),
work VARCHAR(33),
city VARCHAR(15),
PRIMARY KEY (id),
UNIQUE (username),
UNIQUE (password),
UNIQUE (email),
UNIQUE (gender),
UNIQUE (work),
UNIQUE (city)
);
CREATE TABLE alembic_version (
version_num VARCHAR(32) NOT NULL,
CONSTRAINT alembic_version_pkc PRIMARY KEY (version_num)
);
CREATE TABLE sqlite_stat1(tbl,idx,stat);
sqlite> ^Z
If you want to change the id into auto increment then you need to follow this steps:class User(db.Model):
__tablename__ = 'user'
__table_args__ = {'sqlite_autoincrement': True}
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True)
password = db.Column(db.String(120), unique=True)
email = db.Column(db.String(120), unique=True)
gender = db.Column(db.String(5), unique=True)
work = db.Column(db.String(33), unique=True)
city = db.Column(db.String(15), unique=True)
Delete the server.sqlite file or rename it.Open python3 and create a new server.sqlite file:
[mythcat@desk my_flask]$ python3
Python 3.7.4 (default, Jul 9 2019, 16:32:37)
[GCC 9.1.1 20190503 (Red Hat 9.1.1-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from server import db
>>> db.create_all()
>>> db.engine.table_names()
['sqlite_sequence', 'user']
>>>
[5]+ Stopat python3
Open the new file to see the changes:[mythcat@desk my_flask]$ sqlite3 server.sqlite
SQLite version 3.26.0 2018-12-01 12:34:55
Enter ".help" for usage hints.
sqlite> .schema
CREATE TABLE user (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
username VARCHAR(80),
password VARCHAR(120),
email VARCHAR(120),
gender VARCHAR(5),
work VARCHAR(33),
city VARCHAR(15),
UNIQUE (username),
UNIQUE (password),
UNIQUE (email),
UNIQUE (gender),
UNIQUE (work),
UNIQUE (city)
);
CREATE TABLE sqlite_sequence(name,seq);
sqlite>