Create DB when executing 'flask run'
This commit is contained in:
parent
712c84b358
commit
f84d71616a
|
@ -1,5 +1,10 @@
|
||||||
from flask import Flask
|
from flask import Flask
|
||||||
|
from config import Config
|
||||||
|
from flask_sqlalchemy import SQLAlchemy
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
app.config.from_object(Config)
|
||||||
|
db = SQLAlchemy(app)
|
||||||
|
|
||||||
from app import routes
|
|
||||||
|
from app import routes, models
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
from app import db
|
||||||
|
from subprocess import run
|
||||||
|
from database.constants import DB_USER, DB_PW, DB_NAME
|
||||||
|
|
||||||
|
|
||||||
|
class Glacier(db.Model):
|
||||||
|
uid = db.Column(db.String(5), primary_key=True)
|
||||||
|
country = db.Column(db.String(60))
|
||||||
|
name = db.Column(db.String(60))
|
||||||
|
annual_data = db.relationship("Annual_Data")
|
||||||
|
|
||||||
|
def __init__(self, uid, country, name):
|
||||||
|
self.uid = uid
|
||||||
|
self.country = country
|
||||||
|
self.name = name
|
||||||
|
|
||||||
|
|
||||||
|
class Annual_Data(db.Model):
|
||||||
|
__tablename__ = "annual_data"
|
||||||
|
year = db.Column(db.Integer, primary_key=True)
|
||||||
|
uid = db.Column(db.ForeignKey("glacier.uid"), primary_key=True)
|
||||||
|
surface = db.Column(db.Float)
|
||||||
|
length = db.Column(db.Float)
|
||||||
|
elevation = db.Column(db.Float)
|
||||||
|
|
||||||
|
def __init__(self, year, surface, length, elevation):
|
||||||
|
self.year = year
|
||||||
|
self.surface = surface
|
||||||
|
self.length = length
|
||||||
|
self.elevation = elevation
|
||||||
|
|
||||||
|
|
||||||
|
class User(db.Model):
|
||||||
|
uid = db.Column(db.Integer, primary_key=True)
|
||||||
|
registration_date = db.Column(
|
||||||
|
db.DateTime, nullable=False, server_default=db.func.now()
|
||||||
|
)
|
||||||
|
username = db.Column(db.String(20), nullable=False, unique=True)
|
||||||
|
password = db.Column(db.String(60))
|
||||||
|
|
||||||
|
def __init__(self, uid, username, password):
|
||||||
|
self.uid = uid
|
||||||
|
self.username = username
|
||||||
|
self.password = password
|
|
@ -0,0 +1,6 @@
|
||||||
|
from database.constants import CONNECTION_URI
|
||||||
|
|
||||||
|
|
||||||
|
class Config(object):
|
||||||
|
SQLALCHEMY_DATABASE_URI = CONNECTION_URI
|
||||||
|
SQLALCHEMY_TRACK_MODIFICATIONS = False
|
|
@ -2,3 +2,7 @@ DB_NAME = "igdb"
|
||||||
DB_USER = "igdb"
|
DB_USER = "igdb"
|
||||||
DB_PW = "agentorange"
|
DB_PW = "agentorange"
|
||||||
ADMIN_PW = "fuckmonsanto"
|
ADMIN_PW = "fuckmonsanto"
|
||||||
|
HOST = "localhost:3306"
|
||||||
|
CONNECTION_URI = "mysql+pymysql://{user}:{pw}@{url}/{db}".format(
|
||||||
|
user=DB_USER, pw=DB_PW, url=HOST, db=DB_NAME
|
||||||
|
)
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
|
from app import db
|
||||||
|
from database.constants import DB_NAME, DB_USER, DB_PW
|
||||||
from subprocess import run
|
from subprocess import run
|
||||||
from flask_sqlalchemy import SQLAlchemy
|
|
||||||
from datetime import datetime
|
|
||||||
from flask import Flask
|
|
||||||
from constants import DB_NAME, DB_USER, DB_PW
|
|
||||||
|
|
||||||
|
|
||||||
def create_database():
|
def create_database():
|
||||||
|
@ -13,62 +11,6 @@ def create_database():
|
||||||
exit()
|
exit()
|
||||||
|
|
||||||
|
|
||||||
def create_connection():
|
|
||||||
host = "localhost:3306"
|
|
||||||
connection_uri = "mysql+pymysql://{user}:{pw}@{url}/{db}".format(
|
|
||||||
user=DB_USER, pw=DB_PW, url=host, db=DB_NAME
|
|
||||||
)
|
|
||||||
app = Flask(__name__)
|
|
||||||
app.config["SQLALCHEMY_DATABASE_URI"] = connection_uri
|
|
||||||
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
|
|
||||||
db = SQLAlchemy(app)
|
|
||||||
return db
|
|
||||||
|
|
||||||
|
|
||||||
db = create_connection()
|
|
||||||
|
|
||||||
|
|
||||||
class Glacier(db.Model):
|
|
||||||
uid = db.Column(db.String(5), primary_key=True)
|
|
||||||
country = db.Column(db.String(60))
|
|
||||||
name = db.Column(db.String(60))
|
|
||||||
annual_data = db.relationship("Annual_Data")
|
|
||||||
|
|
||||||
def __init__(self, uid, country, name):
|
|
||||||
self.uid = uid
|
|
||||||
self.country = country
|
|
||||||
self.name = name
|
|
||||||
|
|
||||||
|
|
||||||
class Annual_Data(db.Model):
|
|
||||||
__tablename__ = "annual_data"
|
|
||||||
year = db.Column(db.Integer, primary_key=True)
|
|
||||||
uid = db.Column(db.ForeignKey("glacier.uid"), primary_key=True)
|
|
||||||
surface = db.Column(db.Float)
|
|
||||||
length = db.Column(db.Float)
|
|
||||||
elevation = db.Column(db.Float)
|
|
||||||
|
|
||||||
def __init__(self, year, surface, length, elevation):
|
|
||||||
self.year = year
|
|
||||||
self.surface = surface
|
|
||||||
self.length = length
|
|
||||||
self.elevation = elevation
|
|
||||||
|
|
||||||
|
|
||||||
class User(db.Model):
|
|
||||||
uid = db.Column(db.Integer, primary_key=True)
|
|
||||||
registration_date = db.Column(
|
|
||||||
db.DateTime, nullable=False, server_default=db.func.now()
|
|
||||||
)
|
|
||||||
username = db.Column(db.String(20), nullable=False, unique=True)
|
|
||||||
password = db.Column(db.String(60))
|
|
||||||
|
|
||||||
def __init__(self, uid, username, password):
|
|
||||||
self.uid = uid
|
|
||||||
self.username = username
|
|
||||||
self.password = password
|
|
||||||
|
|
||||||
|
|
||||||
def create_tables():
|
def create_tables():
|
||||||
db.create_all()
|
db.create_all()
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
from constants import DB_NAME, DB_PW, DB_USER
|
from database.constants import DB_NAME, DB_PW, DB_USER
|
||||||
from pandas import DataFrame, read_csv
|
from pandas import DataFrame, read_csv
|
||||||
from sqlalchemy import create_engine, engine
|
from sqlalchemy import create_engine, engine
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
from iso3166 import countries as co
|
from iso3166 import countries as co
|
||||||
from pandas import DataFrame, concat, read_csv
|
from pandas import DataFrame, concat, read_csv
|
||||||
from csv import QUOTE_NONNUMERIC
|
from csv import QUOTE_NONNUMERIC
|
||||||
from constants import ADMIN_PW
|
from database.constants import ADMIN_PW
|
||||||
|
|
||||||
|
|
||||||
def country_conversion(political_unit) -> str:
|
def country_conversion(political_unit) -> str:
|
||||||
|
|
|
@ -1 +1,6 @@
|
||||||
from app import app
|
from app import app
|
||||||
|
from database import db_setup, export, parser
|
||||||
|
|
||||||
|
db_setup.main()
|
||||||
|
parser.main()
|
||||||
|
export.main()
|
||||||
|
|
Loading…
Reference in New Issue