modified: .gitignore
modified: src/Dockerfile
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -4,6 +4,7 @@ src/*.sqlite
|
|||||||
src/config.ini
|
src/config.ini
|
||||||
src/rund.sh
|
src/rund.sh
|
||||||
src.old/*
|
src.old/*
|
||||||
|
src/dbinit.py
|
||||||
import.py
|
import.py
|
||||||
check.py
|
check.py
|
||||||
*.sqlite
|
*.sqlite
|
||||||
|
|||||||
96
dbinit.py
Normal file
96
dbinit.py
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
import os
|
||||||
|
from peewee import AutoField, Model, CharField, IntegerField, DateField, BooleanField, CompositeKey, DecimalField, ForeignKeyField, SQL, SqliteDatabase
|
||||||
|
|
||||||
|
path = os.path.dirname(os.path.abspath(__file__))
|
||||||
|
db_file = 'database.sqlite'
|
||||||
|
|
||||||
|
db = SqliteDatabase(os.path.join(path, db_file))
|
||||||
|
|
||||||
|
path = os.path.dirname(os.path.abspath(__file__))
|
||||||
|
db_file = 'database_empty.sqlite'
|
||||||
|
db = SqliteDatabase(os.path.join(path, db_file))
|
||||||
|
|
||||||
|
# class ChartType(Enum):
|
||||||
|
# DAY = "DAY"
|
||||||
|
# MONTH = "MONTH"
|
||||||
|
# YEAR = "YEAR"
|
||||||
|
|
||||||
|
class PPETable(Model):
|
||||||
|
id = CharField(primary_key=True)
|
||||||
|
ppe = CharField(unique=True)
|
||||||
|
tariffCode = CharField()
|
||||||
|
type = CharField()
|
||||||
|
name = CharField()
|
||||||
|
last_update_date = DateField(null=True)
|
||||||
|
is_active = BooleanField(default=True)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
database = db
|
||||||
|
table_name = 'PPE'
|
||||||
|
constraints = [SQL('UNIQUE (ppe, tariffCode)')]
|
||||||
|
|
||||||
|
class MeterTable(Model):
|
||||||
|
id = AutoField() # Meter point
|
||||||
|
ppe_id = ForeignKeyField(PPETable, backref='zones')
|
||||||
|
meter_type = CharField()
|
||||||
|
last_update_date = DateField(null=True)
|
||||||
|
first_date = DateField(null=True)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
database = db
|
||||||
|
table_name = 'METER'
|
||||||
|
constraints = [SQL('UNIQUE (ppe_id, meter_type)')]
|
||||||
|
|
||||||
|
class CounterTable(Model):
|
||||||
|
id = AutoField()
|
||||||
|
meter_id = ForeignKeyField(MeterTable, backref='meter')
|
||||||
|
tariff = CharField()
|
||||||
|
measurement_date = DateField(null=True)
|
||||||
|
meter_value = DecimalField(max_digits=15, decimal_places=5, null=True)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
database = db
|
||||||
|
table_name = 'COUNTER'
|
||||||
|
|
||||||
|
class ChartTable(Model):
|
||||||
|
id = IntegerField()
|
||||||
|
meter_type = CharField()
|
||||||
|
year = IntegerField()
|
||||||
|
month = IntegerField(null=True)
|
||||||
|
day = IntegerField(null=True)
|
||||||
|
value =CharField()
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
database = db
|
||||||
|
table_name = 'CHART_CACHE'
|
||||||
|
primary_key = CompositeKey('id', 'year', 'month', 'day')
|
||||||
|
|
||||||
|
class MainChartTable(Model):
|
||||||
|
mp = CharField()
|
||||||
|
meter_type = CharField()
|
||||||
|
zone = IntegerField()
|
||||||
|
tm = IntegerField()
|
||||||
|
value = DecimalField(max_digits=20, decimal_places=16, null=True)
|
||||||
|
tarAvg = DecimalField(max_digits=20, decimal_places=16, null=True)
|
||||||
|
est = BooleanField(default=False)
|
||||||
|
cplt = BooleanField(default=False)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
database = db
|
||||||
|
table_name = 'CHART'
|
||||||
|
primary_key = CompositeKey('mp', 'meter_type', 'zone', 'tm')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def databaseInit():
|
||||||
|
db.create_tables([PPETable], safe=True)
|
||||||
|
db.create_tables([MeterTable], safe=True)
|
||||||
|
db.create_tables([CounterTable], safe=True)
|
||||||
|
db.create_tables([ChartTable], safe=True)
|
||||||
|
db.create_tables([MainChartTable], safe=True)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
databaseInit()
|
||||||
@@ -12,6 +12,7 @@ COPY main.py /
|
|||||||
COPY api.py /
|
COPY api.py /
|
||||||
COPY moj_licznik.py /
|
COPY moj_licznik.py /
|
||||||
COPY log_config.py /
|
COPY log_config.py /
|
||||||
|
COPY database_empty.sqlite /database.sqlite
|
||||||
RUN chmod a+x /run.sh
|
RUN chmod a+x /run.sh
|
||||||
RUN pip install -r requirements.txt
|
RUN pip install -r requirements.txt
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user