130 lines
11 KiB
Python
130 lines
11 KiB
Python
import sys
|
|
# the sqlalchemy db object
|
|
from app import db
|
|
|
|
# we have to import the models so that sqlalchemy can detect them and create the db
|
|
# how else would it know what to create ?
|
|
from app.datalogger.models import *
|
|
|
|
|
|
def main():
|
|
# creates the database
|
|
db.create_all()
|
|
|
|
# after the last command you should now be able to see database.db file
|
|
# in the project folder
|
|
|
|
|
|
def seed():
|
|
# Device Type Seeds
|
|
device_type_CLX = Device_type(device_type='CLX')
|
|
device_type_u800 = Device_type(device_type='Micro800')
|
|
device_type_E300 = Device_type(device_type='E300')
|
|
|
|
db.session.add(device_type_CLX)
|
|
db.session.add(device_type_u800)
|
|
db.session.add(device_type_E300)
|
|
|
|
db.session.add(Device(device_type_id=1, address="192.168.1.10"))
|
|
|
|
ev0 = EventConfig(name='Flow Line Pressure', event_type="analog", tag='Safety_Flow_Line_Pressure', device_id=1)
|
|
db.session.add(ev0)
|
|
ev1 = EventConfig(name='Load HiHi', event_type="analog", tag='Safety_Load_HiHi', device_id=1)
|
|
db.session.add(ev1)
|
|
ev2 = EventConfig(name='Load Lo', event_type="analog", tag='Safety_Load_Lo', device_id=1)
|
|
db.session.add(ev2)
|
|
ev3 = EventConfig(name='Tubing Pressure', event_type="analog", tag='Safety_Tubing_Pressure', device_id=1)
|
|
db.session.add(ev3)
|
|
ev4 = EventConfig(name='Load Hi', event_type="analog", tag='Safety_Load_Hi', device_id=1)
|
|
db.session.add(ev4)
|
|
ev5 = EventConfig(name='Casing Pressure', event_type="analog", tag='Safety_Casing_Pressure', device_id=1)
|
|
db.session.add(ev5)
|
|
ev6 = EventConfig(name='Fluid Load', event_type="analog", tag='Safety_Fluid_Load', device_id=1)
|
|
db.session.add(ev6)
|
|
ev7 = EventConfig(name='Flowmeter', event_type="analog", tag='Safety_Flowmeter', device_id=1)
|
|
db.session.add(ev7)
|
|
ev8 = EventConfig(name='Speed', event_type="analog", tag='Safety_Speed', device_id=1)
|
|
db.session.add(ev8)
|
|
ev9 = EventConfig(name='Load LoLo', event_type="analog", tag='Safety_Load_LoLo', device_id=1)
|
|
db.session.add(ev9)
|
|
ev10 = EventConfig(name='Inclinometer', event_type="analog", tag='Safety_Inclinometer', device_id=1)
|
|
db.session.add(ev10)
|
|
ev11 = EventConfig(name='Unit Jogged', event_type="bit", tag='Pump.Jog', condition='Unit Jog', device_id=1)
|
|
db.session.add(ev11)
|
|
ev12 = EventConfig(name='Restart (Auto Mode)', event_type="bit", tag='Pump.Auto_Restart', condition='Unit Start', device_id=1)
|
|
db.session.add(ev12)
|
|
ev13 = EventConfig(name='Pump Off (POC Mode)', event_type="bit", tag='Pump.POC_Stop', condition='Unit Stop', device_id=1)
|
|
db.session.add(ev13)
|
|
ev14 = EventConfig(name='Restart (Timer Mode)', event_type="bit", tag='Pump.Timed_Restart', condition='Unit Start', device_id=1)
|
|
db.session.add(ev14)
|
|
ev15 = EventConfig(name='Restart (POC Mode)', event_type="bit", tag='Pump.POC_Restart', condition='Unit Start', device_id=1)
|
|
db.session.add(ev15)
|
|
ev16 = EventConfig(name='Pump Off (Auto Mode)', event_type="bit", tag='Pump.Auto_Stop', condition='Unit Stop', device_id=1)
|
|
db.session.add(ev16)
|
|
ev17 = EventConfig(name='Peak Energy Restart', event_type="bit", tag='PeakEnergy.Restart', condition='Unit Start', device_id=1)
|
|
db.session.add(ev17)
|
|
ev18 = EventConfig(name='Peak Energy Stop', event_type="bit", tag='PeakEnergy.Stop', condition='Unit Stop', device_id=1)
|
|
db.session.add(ev18)
|
|
ev19 = EventConfig(name='User Initiated Start', event_type="bit", tag='Pump.Start', condition='Unit Start', device_id=1)
|
|
db.session.add(ev19)
|
|
ev20 = EventConfig(name='User Initiated Stop', event_type="bit", tag='Pump.Stop', condition='Unit Stop', device_id=1)
|
|
db.session.add(ev20)
|
|
ev21 = EventConfig(name='Pump Off (Timer Mode)', event_type="bit", tag='Pump.Timed_Stop', condition='Unit Stop', device_id=1)
|
|
db.session.add(ev21)
|
|
|
|
polished_rod_hp = Tag(name='Polished Rod HP', tag_category='poc', tag='Card_Past[1].Polished_Rod_HP', device_id=1, description='Polished Rod HP', data_type='REAL', change_threshold=1.0, min_expected=0, max_expected=20, units='HP', guarantee_sec=3600)
|
|
db.session.add(polished_rod_hp)
|
|
downhole_max_load = Tag(name='Peak Downhole Load', tag_category='poc', tag='Card_Past[1].Downhole_Max_Load.Load', device_id=1, description='Maximum value of downhole load for the current stroke', data_type='REAL', change_threshold=400.0, min_expected=-10000, max_expected=10000, units='lbs', guarantee_sec=3600)
|
|
db.session.add(downhole_max_load)
|
|
downhole_gross_stroke = Tag(name='Downhole Gross Stroke', tag_category='poc', tag='Card_Past[1].Downhole_GrossStroke', device_id=1, description='Gross Stroke Length', data_type='REAL', change_threshold=2.0, min_expected=0, max_expected=150, units='in', guarantee_sec=3600)
|
|
db.session.add(downhole_gross_stroke)
|
|
spm = Tag(name='Stroke Speed', tag_category='poc', tag='Card_Past[1].SPM', device_id=1, description='Current Stroke Speed', data_type='REAL', change_threshold=0.5, min_expected=0, max_expected=20, units='SPM', guarantee_sec=3600)
|
|
db.session.add(spm)
|
|
tubing_head_pressure = Tag(name='Tubing Head Pressure', tag_category='poc', tag='Card_Past[1].Params.Tubing_Head_Pressure', device_id=1, description='Pressure at the tubing head', data_type='REAL', change_threshold=5.0, min_expected=0, max_expected=500, units='PSI', guarantee_sec=3600)
|
|
db.session.add(tubing_head_pressure)
|
|
surface_min_load = Tag(name='Minimum Polished Rod Load', tag_category='poc', tag='Card_Past[1].Surface_Min.Load', device_id=1, description='Minimum value of the polished rod load this stroke', data_type='REAL', change_threshold=400.0, min_expected=0, max_expected=25000, units='lbs', guarantee_sec=3600)
|
|
db.session.add(surface_min_load)
|
|
downhole_fluid_load = Tag(name='Fluid Load', tag_category='poc', tag='Card_Past[1].Downhole_FluidLoad', device_id=1, description='Fluid Load of downhole card', data_type='REAL', change_threshold=400.0, min_expected=0, max_expected=10000, units='lbs', guarantee_sec=3600)
|
|
db.session.add(downhole_fluid_load)
|
|
downhole_max_position = Tag(name='Downhole Max. Position', tag_category='poc', tag='Card_Past[1].Downhole_Max_Position.Position', device_id=1, description='Maximum Position in the downhole card', data_type='REAL', change_threshold=2.0, min_expected=0, max_expected=1500, units='in', guarantee_sec=3600)
|
|
db.session.add(downhole_max_position)
|
|
downhole_net_stroke = Tag(name='Downhole Net Stroke', tag_category='poc', tag='Card_Past[1].Downhole_NetStroke', device_id=1, description='Net Stroke Length', data_type='REAL', change_threshold=2.0, min_expected=0, max_expected=150, units='in', guarantee_sec=3600)
|
|
db.session.add(downhole_net_stroke)
|
|
fillage_percent = Tag(name='Pump Fill Percent', tag_category='poc', tag='Card_Past[1].Fillage_Percent', device_id=1, description='Fill percent of the downhole pump', data_type='REAL', change_threshold=5.0, min_expected=0, max_expected=100, units='%', guarantee_sec=3600)
|
|
db.session.add(fillage_percent)
|
|
pump_hp = Tag(name='Downhole Pump HP', tag_category='poc', tag='Card_Past[1].Pump_HP', device_id=1, description='Downhole Pump Horsepower', data_type='REAL', change_threshold=1.0, min_expected=0, max_expected=20, units='HP', guarantee_sec=3600)
|
|
db.session.add(pump_hp)
|
|
surface_min_position = Tag(name='Surface Min. Position', tag_category='poc', tag='Card_Past[1].Surface_Min.Position', device_id=1, description='Minimum position in the surface card', data_type='REAL', change_threshold=1.0, min_expected=0, max_expected=150, units='in', guarantee_sec=3600)
|
|
db.session.add(surface_min_position)
|
|
pump_intake_pressure = Tag(name='Pump Intake Pressure', tag_category='poc', tag='Card_Past[1].Pump_Intake_Pressure', device_id=1, description='Pressure at the intake of the pump', data_type='REAL', change_threshold=200.0, min_expected=0, max_expected=20000, units='PSI', guarantee_sec=3600)
|
|
db.session.add(pump_intake_pressure)
|
|
surface_max_position = Tag(name='Surface Max. Position', tag_category='poc', tag='Card_Past[1].Surface_Max.Position', device_id=1, description='Maximum position in the surface card', data_type='REAL', change_threshold=1.0, min_expected=0, max_expected=1000, units='in', guarantee_sec=3600)
|
|
db.session.add(surface_max_position)
|
|
tubing_movement = Tag(name='Tubing Movement', tag_category='poc', tag='Card_Past[1].Tubing_Movement', device_id=1, description='Tubing Movement in the downhole card', data_type='REAL', change_threshold=1.0, min_expected=0, max_expected=100, units='in', guarantee_sec=3600)
|
|
db.session.add(tubing_movement)
|
|
downhole_min_position = Tag(name='Downhole Min. Position', tag_category='poc', tag='Card_Past[1].Downhole_Min_Position.Position', device_id=1, description='Minimum Position in the downhole card', data_type='REAL', change_threshold=2.0, min_expected=0, max_expected=150, units='in', guarantee_sec=3600)
|
|
db.session.add(downhole_min_position)
|
|
surface_max_load = Tag(name='Peak Polished Rod Load', tag_category='poc', tag='Card_Past[1].Surface_Max.Load', device_id=1, description='Peak Polished Rod Load in the surface card', data_type='REAL', change_threshold=400.0, min_expected=5000, max_expected=25000, units='lbs', guarantee_sec=3600)
|
|
db.session.add(surface_max_load)
|
|
downhole_min_load = Tag(name='Minimum Downhole Load', tag_category='poc', tag='Card_Past[1].Downhole_Min_Load.Load', device_id=1, description='Minimum load in the downhole card', data_type='REAL', change_threshold=400.0, min_expected=-20000, max_expected=20000, units='lbs', guarantee_sec=3600)
|
|
db.session.add(downhole_min_load)
|
|
surface_stroke_length = Tag(name='Surface Stroke Length', tag_category='poc', tag='Card_Past[1].Surface_StrokeLength', device_id=1, description='Stroke length of the surface card', data_type='REAL', change_threshold=1.0, min_expected=0, max_expected=150, units='in', guarantee_sec=3600)
|
|
db.session.add(surface_stroke_length)
|
|
downhole_adjusted_gross_stroke = Tag(name='Downhole Adjusted Gross Stroke', tag_category='poc', tag='Card_Past[1].Downhole_AdjustedGrossStroke', device_id=1, description='Gross Stroke after adjusting for tubing movement', data_type='REAL', change_threshold=2.0, min_expected=0, max_expected=150, units='in', guarantee_sec=3600)
|
|
db.session.add(downhole_adjusted_gross_stroke)
|
|
fluid_level = Tag(name='Fluid Level', tag_category='poc', tag='Card_Past[1].Fluid_Above_Pump', device_id=1, description='Fluid level above the pump', data_type='REAL', change_threshold=200.0, min_expected=0, max_expected=15000, units='ft', guarantee_sec=3600)
|
|
db.session.add(fluid_level)
|
|
stroke_production = Tag(name='Stroke Production', tag_category='poc', tag='Stroke_Production', device_id=1, description='Amount of fluid produced in the current stroke', data_type='REAL', change_threshold=0.005, min_expected=0.00, max_expected=0.01, units='BBL', guarantee_sec=3600)
|
|
db.session.add(stroke_production)
|
|
|
|
db.session.commit()
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|
|
try:
|
|
if sys.argv[1] == "seed":
|
|
seed()
|
|
except Exception as e:
|
|
print("Creating database.db file. To seed data, run 'python setupdb.py seed'")
|