diff --git a/setupdb.py b/setupdb.py index b473c1d..897e5ea 100644 --- a/setupdb.py +++ b/setupdb.py @@ -1,3 +1,4 @@ +import sys # the sqlalchemy db object from app import db @@ -5,113 +6,124 @@ from app import db # how else would it know what to create ? from app.datalogger.models import * -# 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 main(): + # creates the database + db.create_all() -# 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) + # after the last command you should now be able to see database.db file + # in the project folder -db.session.add(Device(device_type_id=1, address="192.168.1.10")) +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') -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) + db.session.add(device_type_CLX) + db.session.add(device_type_u800) + db.session.add(device_type_E300) -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.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() -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'")