Переглянути джерело

seperate db logic into modules/sql_models

Chuan Miao 9 роки тому
батько
коміт
4f1c7a750c
22 змінених файлів з 110 додано та 1725 видалено
  1. 4 4
      applications/service/controllers/sql.py
  2. 0 109
      applications/service/databases/c8b669d15150d7109e5f7ab36744a5b7_adei_sensors.table
  3. 0 105
      applications/service/databases/c8b669d15150d7109e5f7ab36744a5b7_adei_server.table
  4. 0 108
      applications/service/databases/c8b669d15150d7109e5f7ab36744a5b7_auth_cas.table
  5. 0 108
      applications/service/databases/c8b669d15150d7109e5f7ab36744a5b7_auth_event.table
  6. 0 58
      applications/service/databases/c8b669d15150d7109e5f7ab36744a5b7_auth_group.table
  7. 0 58
      applications/service/databases/c8b669d15150d7109e5f7ab36744a5b7_auth_membership.table
  8. 0 91
      applications/service/databases/c8b669d15150d7109e5f7ab36744a5b7_auth_permission.table
  9. 0 137
      applications/service/databases/c8b669d15150d7109e5f7ab36744a5b7_auth_user.table
  10. 0 353
      applications/service/databases/c8b669d15150d7109e5f7ab36744a5b7_legacy_mysql.table
  11. 0 115
      applications/service/databases/c8b669d15150d7109e5f7ab36744a5b7_legacy_mysql_fields.table
  12. 0 124
      applications/service/databases/c8b669d15150d7109e5f7ab36744a5b7_legacy_mysql_info.table
  13. 0 59
      applications/service/databases/c8b669d15150d7109e5f7ab36744a5b7_legacy_mysql_table_info.table
  14. 0 82
      applications/service/databases/c8b669d15150d7109e5f7ab36744a5b7_legacy_mysql_tables.table
  15. BIN
      applications/service/databases/db_info.sqlite
  16. BIN
      applications/service/databases/storage.sqlite
  17. 6 86
      applications/service/models/db_sql.py
  18. 0 0
      applications/service/modules/adei/adei.py.0
  19. 0 0
      applications/service/modules/adei/config_adei.py
  20. 4 4
      applications/service/modules/config.py
  21. 29 124
      applications/service/modules/kitcube.py
  22. 67 0
      applications/service/modules/sql_models.py

+ 4 - 4
applications/service/controllers/sql.py

@@ -1,10 +1,10 @@
 def index():
     db = info(info.sql_db).select()
-    mod = info(info.sql_module).select()
-    sensors = info(info.sql_sensor).select()
+    # mod = info(info.sql_module).select()
+    # sensors = info(info.sql_sensor).select()
 
-    # if False:
-    if True:
+    # if True:
+    if False:
         info.sql_db.truncate()
         info.sql_module.truncate()
         info.sql_sensor.truncate()

+ 0 - 109
applications/service/databases/c8b669d15150d7109e5f7ab36744a5b7_adei_sensors.table

@@ -1,109 +0,0 @@
-(dp1
-S'adei_server_id'
-p2
-(dp3
-S'length'
-p4
-I512
-sS'unique'
-p5
-I00
-sS'sortable'
-p6
-I2
-sS'sql'
-p7
-S'INTEGER REFERENCES adei_server (id) ON DELETE CASCADE'
-p8
-sS'notnull'
-p9
-I00
-sS'type'
-p10
-S'reference adei_server'
-p11
-ssS'sensor_name'
-p12
-(dp13
-g4
-I512
-sg5
-I00
-sg6
-I3
-sg7
-S'CHAR(512)'
-p14
-sg9
-I00
-sg10
-S'string'
-p15
-ssS'sensor_last_update'
-p16
-(dp17
-g4
-I512
-sg5
-I00
-sg6
-I5
-sg7
-S'TIME'
-p18
-sg9
-I00
-sg10
-S'time'
-p19
-ssS'sensor_unit'
-p20
-(dp21
-g4
-I512
-sg5
-I00
-sg6
-I4
-sg7
-S'CHAR(512)'
-p22
-sg9
-I00
-sg10
-g15
-ssS'id'
-p23
-(dp24
-g4
-I512
-sg5
-I00
-sg6
-I1
-sg7
-S'INTEGER PRIMARY KEY AUTOINCREMENT'
-p25
-sg9
-I00
-sg10
-S'id'
-p26
-ssS'sensor_last_value'
-p27
-(dp28
-g4
-I512
-sg5
-I00
-sg6
-I6
-sg7
-S'DOUBLE'
-p29
-sg9
-I00
-sg10
-S'double'
-p30
-ss.

+ 0 - 105
applications/service/databases/c8b669d15150d7109e5f7ab36744a5b7_adei_server.table

@@ -1,105 +0,0 @@
-(dp1
-S'adei_host'
-p2
-(dp3
-S'length'
-p4
-I512
-sS'unique'
-p5
-I00
-sS'sortable'
-p6
-I4
-sS'sql'
-p7
-S'CHAR(512)'
-p8
-sS'notnull'
-p9
-I00
-sS'type'
-p10
-S'string'
-p11
-ssS'adei_group'
-p12
-(dp13
-g4
-I512
-sg5
-I00
-sg6
-I6
-sg7
-S'CHAR(512)'
-p14
-sg9
-I00
-sg10
-g11
-ssS'adei_name'
-p15
-(dp16
-g4
-I512
-sg5
-I00
-sg6
-I5
-sg7
-S'CHAR(512)'
-p17
-sg9
-I00
-sg10
-g11
-ssS'md5'
-p18
-(dp19
-g4
-I512
-sg5
-I00
-sg6
-I2
-sg7
-S'CHAR(512)'
-p20
-sg9
-I00
-sg10
-g11
-ssS'id'
-p21
-(dp22
-g4
-I512
-sg5
-I00
-sg6
-I1
-sg7
-S'INTEGER PRIMARY KEY AUTOINCREMENT'
-p23
-sg9
-I00
-sg10
-g21
-ssS'adei_url'
-p24
-(dp25
-g4
-I512
-sg5
-I00
-sg6
-I3
-sg7
-S'CHAR(512)'
-p26
-sg9
-I00
-sg10
-g11
-ss.

+ 0 - 108
applications/service/databases/c8b669d15150d7109e5f7ab36744a5b7_auth_cas.table

@@ -1,108 +0,0 @@
-(dp1
-S'user_id'
-p2
-(dp3
-S'length'
-p4
-I512
-sS'unique'
-p5
-I00
-sS'sortable'
-p6
-I2
-sS'sql'
-p7
-S'INTEGER REFERENCES auth_user (id) ON DELETE CASCADE'
-p8
-sS'notnull'
-p9
-I00
-sS'type'
-p10
-S'reference auth_user'
-p11
-ssS'service'
-p12
-(dp13
-g4
-I512
-sg5
-I00
-sg6
-I4
-sg7
-S'CHAR(512)'
-p14
-sg9
-I00
-sg10
-S'string'
-p15
-ssS'renew'
-p16
-(dp17
-g4
-I512
-sg5
-I00
-sg6
-I6
-sg7
-S'CHAR(1)'
-p18
-sg9
-I00
-sg10
-S'boolean'
-p19
-ssS'created_on'
-p20
-(dp21
-g4
-I512
-sg5
-I00
-sg6
-I3
-sg7
-S'TIMESTAMP'
-p22
-sg9
-I00
-sg10
-S'datetime'
-p23
-ssS'ticket'
-p24
-(dp25
-g4
-I512
-sg5
-I00
-sg6
-I5
-sg7
-S'CHAR(512)'
-p26
-sg9
-I00
-sg10
-g15
-ssS'id'
-p27
-(dp28
-g4
-I512
-sg5
-I00
-sg6
-I1
-sg7
-S'INTEGER PRIMARY KEY AUTOINCREMENT'
-p29
-sg9
-I00
-sg10
-g27
-ss.

+ 0 - 108
applications/service/databases/c8b669d15150d7109e5f7ab36744a5b7_auth_event.table

@@ -1,108 +0,0 @@
-(dp1
-S'origin'
-p2
-(dp3
-S'length'
-p4
-I512
-sS'unique'
-p5
-I00
-sS'sortable'
-p6
-I5
-sS'sql'
-p7
-S'CHAR(512)'
-p8
-sS'notnull'
-p9
-I00
-sS'type'
-p10
-S'string'
-p11
-ssS'client_ip'
-p12
-(dp13
-g4
-I512
-sg5
-I00
-sg6
-I3
-sg7
-S'CHAR(512)'
-p14
-sg9
-I00
-sg10
-g11
-ssS'user_id'
-p15
-(dp16
-g4
-I512
-sg5
-I00
-sg6
-I4
-sg7
-S'INTEGER REFERENCES auth_user (id) ON DELETE CASCADE'
-p17
-sg9
-I00
-sg10
-S'reference auth_user'
-p18
-ssS'description'
-p19
-(dp20
-g4
-I32768
-sg5
-I00
-sg6
-I6
-sg7
-S'TEXT'
-p21
-sg9
-I00
-sg10
-S'text'
-p22
-ssS'time_stamp'
-p23
-(dp24
-g4
-I512
-sg5
-I00
-sg6
-I2
-sg7
-S'TIMESTAMP'
-p25
-sg9
-I00
-sg10
-S'datetime'
-p26
-ssS'id'
-p27
-(dp28
-g4
-I512
-sg5
-I00
-sg6
-I1
-sg7
-S'INTEGER PRIMARY KEY AUTOINCREMENT'
-p29
-sg9
-I00
-sg10
-g27
-ss.

+ 0 - 58
applications/service/databases/c8b669d15150d7109e5f7ab36744a5b7_auth_group.table

@@ -1,58 +0,0 @@
-(dp1
-S'role'
-p2
-(dp3
-S'length'
-p4
-I512
-sS'unique'
-p5
-I00
-sS'sortable'
-p6
-I2
-sS'sql'
-p7
-S'CHAR(512)'
-p8
-sS'notnull'
-p9
-I00
-sS'type'
-p10
-S'string'
-p11
-ssS'id'
-p12
-(dp13
-g4
-I512
-sg5
-I00
-sg6
-I1
-sg7
-S'INTEGER PRIMARY KEY AUTOINCREMENT'
-p14
-sg9
-I00
-sg10
-g12
-ssS'description'
-p15
-(dp16
-g4
-I32768
-sg5
-I00
-sg6
-I3
-sg7
-S'TEXT'
-p17
-sg9
-I00
-sg10
-S'text'
-p18
-ss.

+ 0 - 58
applications/service/databases/c8b669d15150d7109e5f7ab36744a5b7_auth_membership.table

@@ -1,58 +0,0 @@
-(dp1
-S'group_id'
-p2
-(dp3
-S'length'
-p4
-I512
-sS'unique'
-p5
-I00
-sS'sortable'
-p6
-I3
-sS'sql'
-p7
-S'INTEGER REFERENCES auth_group (id) ON DELETE CASCADE'
-p8
-sS'notnull'
-p9
-I00
-sS'type'
-p10
-S'reference auth_group'
-p11
-ssS'user_id'
-p12
-(dp13
-g4
-I512
-sg5
-I00
-sg6
-I2
-sg7
-S'INTEGER REFERENCES auth_user (id) ON DELETE CASCADE'
-p14
-sg9
-I00
-sg10
-S'reference auth_user'
-p15
-ssS'id'
-p16
-(dp17
-g4
-I512
-sg5
-I00
-sg6
-I1
-sg7
-S'INTEGER PRIMARY KEY AUTOINCREMENT'
-p18
-sg9
-I00
-sg10
-g16
-ss.

+ 0 - 91
applications/service/databases/c8b669d15150d7109e5f7ab36744a5b7_auth_permission.table

@@ -1,91 +0,0 @@
-(dp1
-S'record_id'
-p2
-(dp3
-S'length'
-p4
-I512
-sS'unique'
-p5
-I00
-sS'sortable'
-p6
-I5
-sS'sql'
-p7
-S'INTEGER'
-p8
-sS'notnull'
-p9
-I00
-sS'type'
-p10
-S'integer'
-p11
-ssS'group_id'
-p12
-(dp13
-g4
-I512
-sg5
-I00
-sg6
-I2
-sg7
-S'INTEGER REFERENCES auth_group (id) ON DELETE CASCADE'
-p14
-sg9
-I00
-sg10
-S'reference auth_group'
-p15
-ssS'table_name'
-p16
-(dp17
-g4
-I512
-sg5
-I00
-sg6
-I4
-sg7
-S'CHAR(512)'
-p18
-sg9
-I00
-sg10
-S'string'
-p19
-ssS'id'
-p20
-(dp21
-g4
-I512
-sg5
-I00
-sg6
-I1
-sg7
-S'INTEGER PRIMARY KEY AUTOINCREMENT'
-p22
-sg9
-I00
-sg10
-g20
-ssS'name'
-p23
-(dp24
-g4
-I512
-sg5
-I00
-sg6
-I3
-sg7
-S'CHAR(512)'
-p25
-sg9
-I00
-sg10
-g19
-ss.

+ 0 - 137
applications/service/databases/c8b669d15150d7109e5f7ab36744a5b7_auth_user.table

@@ -1,137 +0,0 @@
-(dp1
-S'first_name'
-p2
-(dp3
-S'length'
-p4
-I128
-sS'unique'
-p5
-I00
-sS'sortable'
-p6
-I2
-sS'sql'
-p7
-S'CHAR(128)'
-p8
-sS'notnull'
-p9
-I00
-sS'type'
-p10
-S'string'
-p11
-ssS'last_name'
-p12
-(dp13
-g4
-I128
-sg5
-I00
-sg6
-I3
-sg7
-S'CHAR(128)'
-p14
-sg9
-I00
-sg10
-g11
-ssS'registration_id'
-p15
-(dp16
-g4
-I512
-sg5
-I00
-sg6
-I8
-sg7
-S'CHAR(512)'
-p17
-sg9
-I00
-sg10
-g11
-ssS'email'
-p18
-(dp19
-g4
-I512
-sg5
-I00
-sg6
-I4
-sg7
-S'CHAR(512)'
-p20
-sg9
-I00
-sg10
-g11
-ssS'reset_password_key'
-p21
-(dp22
-g4
-I512
-sg5
-I00
-sg6
-I7
-sg7
-S'CHAR(512)'
-p23
-sg9
-I00
-sg10
-g11
-ssS'password'
-p24
-(dp25
-g4
-I512
-sg5
-I00
-sg6
-I5
-sg7
-S'CHAR(512)'
-p26
-sg9
-I00
-sg10
-g24
-ssS'registration_key'
-p27
-(dp28
-g4
-I512
-sg5
-I00
-sg6
-I6
-sg7
-S'CHAR(512)'
-p29
-sg9
-I00
-sg10
-g11
-ssS'id'
-p30
-(dp31
-g4
-I512
-sg5
-I00
-sg6
-I1
-sg7
-S'INTEGER PRIMARY KEY AUTOINCREMENT'
-p32
-sg9
-I00
-sg10
-g30
-ss.

+ 0 - 353
applications/service/databases/c8b669d15150d7109e5f7ab36744a5b7_legacy_mysql.table

@@ -1,353 +0,0 @@
-(dp1
-S'username'
-p2
-(dp3
-S'length'
-p4
-I128
-sS'unique'
-p5
-I00
-sS'sortable'
-p6
-I6
-sS'sql'
-p7
-S'CHAR(128)'
-p8
-sS'notnull'
-p9
-I00
-sS'type'
-p10
-S'string'
-p11
-ssS'db'
-p12
-(dp13
-S'sortable'
-p14
-I4
-sS'sql'
-p15
-S'CHAR(512)'
-p16
-sS'length'
-p17
-I512
-sS'notnull'
-p18
-I00
-sS'unique'
-p19
-I00
-sS'type'
-p20
-S'string'
-p21
-ssS'dbkey'
-p22
-(dp23
-g4
-I128
-sg5
-I01
-sg6
-I2
-sg7
-S'CHAR(128) UNIQUE'
-p24
-sg9
-I00
-sg10
-g11
-ssS'dbpass'
-p25
-(dp26
-S'sortable'
-p27
-I6
-sS'sql'
-p28
-S'CHAR(512)'
-p29
-sS'length'
-p30
-I512
-sS'notnull'
-p31
-I00
-sS'unique'
-p32
-I00
-sS'type'
-p33
-S'password'
-p34
-ssS'password'
-p35
-(dp36
-g4
-I512
-sg5
-I00
-sg6
-I7
-sg7
-S'CHAR(512)'
-p37
-sg9
-I00
-sg10
-S'password'
-p38
-ssS'host_uri'
-p39
-(dp40
-g4
-I512
-sg5
-I00
-sg6
-I5
-sg7
-S'CHAR(512)'
-p41
-sg9
-I00
-sg10
-g11
-ssS'md5'
-p42
-(dp43
-S'sortable'
-p44
-I2
-sS'sql'
-p45
-S'CHAR(128)'
-p46
-sS'length'
-p47
-I128
-sS'notnull'
-p48
-I00
-sS'unique'
-p49
-I00
-sS'type'
-p50
-S'string'
-p51
-ssS'mysql_pass'
-p52
-(dp53
-S'sortable'
-p54
-I9
-sS'sql'
-p55
-S'CHAR(512)'
-p56
-sS'length'
-p57
-I512
-sS'notnull'
-p58
-I00
-sS'unique'
-p59
-I00
-sS'type'
-p60
-S'password'
-p61
-ssS'hash_md5'
-p62
-(dp63
-g4
-I128
-sg5
-I00
-sg6
-I3
-sg7
-S'CHAR(128)'
-p64
-sg9
-I00
-sg10
-g11
-ssS'dbtype'
-p65
-(dp66
-g27
-I4
-sg28
-S'CHAR(128)'
-p67
-sg30
-I128
-sg31
-I00
-sg32
-I00
-sg33
-S'string'
-p68
-ssS'dbhost'
-p69
-(dp70
-g27
-I3
-sg28
-S'CHAR(128)'
-p71
-sg30
-I128
-sg31
-I00
-sg32
-I00
-sg33
-g68
-ssS'mysql_host'
-p72
-(dp73
-S'sortable'
-p74
-I3
-sS'sql'
-p75
-S'CHAR(512)'
-p76
-sS'length'
-p77
-I512
-sS'notnull'
-p78
-I00
-sS'unique'
-p79
-I00
-sS'type'
-p80
-S'string'
-p81
-ssS'dbname'
-p82
-(dp83
-g4
-I512
-sg5
-I00
-sg6
-I4
-sg7
-S'CHAR(512)'
-p84
-sg9
-I00
-sg10
-g11
-ssS'id'
-p85
-(dp86
-g4
-I512
-sg5
-I00
-sg6
-I1
-sg7
-S'INTEGER PRIMARY KEY AUTOINCREMENT'
-p87
-sg9
-I00
-sg10
-S'id'
-p88
-ssS'mysql_uri'
-p89
-(dp90
-g54
-I3
-sg55
-S'CHAR(512)'
-p91
-sg57
-I512
-sg58
-I00
-sg59
-I00
-sg60
-S'string'
-p92
-ssS'mysql_user'
-p93
-(dp94
-g54
-I7
-sg55
-S'CHAR(128)'
-p95
-sg57
-I128
-sg58
-I00
-sg59
-I00
-sg60
-g92
-ssS'dbtables'
-p96
-(dp97
-g27
-I7
-sg28
-S'TEXT'
-p98
-sg30
-I512
-sg31
-I00
-sg32
-I00
-sg33
-S'list:string'
-p99
-ssS'mysql_db'
-p100
-(dp101
-g54
-I5
-sg55
-S'CHAR(512)'
-p102
-sg57
-I512
-sg58
-I00
-sg59
-I00
-sg60
-g92
-ssS'dbuser'
-p103
-(dp104
-g27
-I5
-sg28
-S'CHAR(128)'
-p105
-sg30
-I128
-sg31
-I00
-sg32
-I00
-sg33
-g68
-ss.

+ 0 - 115
applications/service/databases/c8b669d15150d7109e5f7ab36744a5b7_legacy_mysql_fields.table

@@ -1,115 +0,0 @@
-(dp1
-S'field_type'
-p2
-(dp3
-S'length'
-p4
-I512
-sS'unique'
-p5
-I00
-sS'sortable'
-p6
-I5
-sS'sql'
-p7
-S'CHAR(512)'
-p8
-sS'notnull'
-p9
-I00
-sS'type'
-p10
-S'string'
-p11
-ssS'db_id'
-p12
-(dp13
-g4
-I512
-sg5
-I00
-sg6
-I2
-sg7
-S'INTEGER REFERENCES legacy_mysql (id) ON DELETE CASCADE'
-p14
-sg9
-I00
-sg10
-S'reference legacy_mysql'
-p15
-ssS'table_id'
-p16
-(dp17
-g4
-I512
-sg5
-I00
-sg6
-I3
-sg7
-S'INTEGER REFERENCES legacy_mysql_tables (id) ON DELETE CASCADE'
-p18
-sg9
-I00
-sg10
-S'reference legacy_mysql_tables'
-p19
-ssS'mysql_id'
-p20
-(dp21
-S'sortable'
-p22
-I2
-sS'sql'
-p23
-S'INTEGER REFERENCES legacy_mysql (id) ON DELETE CASCADE'
-p24
-sS'length'
-p25
-I512
-sS'notnull'
-p26
-I00
-sS'unique'
-p27
-I00
-sS'type'
-p28
-S'reference legacy_mysql'
-p29
-ssS'field_name'
-p30
-(dp31
-g4
-I512
-sg5
-I00
-sg6
-I4
-sg7
-S'CHAR(512)'
-p32
-sg9
-I00
-sg10
-g11
-ssS'id'
-p33
-(dp34
-g4
-I512
-sg5
-I00
-sg6
-I1
-sg7
-S'INTEGER PRIMARY KEY AUTOINCREMENT'
-p35
-sg9
-I00
-sg10
-S'id'
-p36
-ss.

+ 0 - 124
applications/service/databases/c8b669d15150d7109e5f7ab36744a5b7_legacy_mysql_info.table

@@ -1,124 +0,0 @@
-(dp1
-S'dbtables'
-p2
-(dp3
-S'length'
-p4
-I512
-sS'unique'
-p5
-I00
-sS'sortable'
-p6
-I7
-sS'sql'
-p7
-S'TEXT'
-p8
-sS'notnull'
-p9
-I00
-sS'type'
-p10
-S'list:string'
-p11
-ssS'dbtype'
-p12
-(dp13
-g4
-I128
-sg5
-I00
-sg6
-I4
-sg7
-S'CHAR(128)'
-p14
-sg9
-I00
-sg10
-S'string'
-p15
-ssS'dbuser'
-p16
-(dp17
-g4
-I128
-sg5
-I00
-sg6
-I5
-sg7
-S'CHAR(128)'
-p18
-sg9
-I00
-sg10
-g15
-ssS'dbhost'
-p19
-(dp20
-g4
-I128
-sg5
-I00
-sg6
-I3
-sg7
-S'CHAR(128)'
-p21
-sg9
-I00
-sg10
-g15
-ssS'md5'
-p22
-(dp23
-g4
-I128
-sg5
-I00
-sg6
-I2
-sg7
-S'CHAR(128)'
-p24
-sg9
-I00
-sg10
-g15
-ssS'id'
-p25
-(dp26
-g4
-I512
-sg5
-I00
-sg6
-I1
-sg7
-S'INTEGER PRIMARY KEY AUTOINCREMENT'
-p27
-sg9
-I00
-sg10
-S'id'
-p28
-ssS'dbpass'
-p29
-(dp30
-g4
-I512
-sg5
-I00
-sg6
-I6
-sg7
-S'CHAR(512)'
-p31
-sg9
-I00
-sg10
-S'password'
-p32
-ss.

+ 0 - 59
applications/service/databases/c8b669d15150d7109e5f7ab36744a5b7_legacy_mysql_table_info.table

@@ -1,59 +0,0 @@
-(dp1
-S'mysql_id'
-p2
-(dp3
-S'length'
-p4
-I512
-sS'unique'
-p5
-I00
-sS'sortable'
-p6
-I2
-sS'sql'
-p7
-S'INTEGER REFERENCES legacy_mysql (id) ON DELETE CASCADE'
-p8
-sS'notnull'
-p9
-I00
-sS'type'
-p10
-S'reference legacy_mysql'
-p11
-ssS'table_name'
-p12
-(dp13
-g4
-I512
-sg5
-I00
-sg6
-I3
-sg7
-S'CHAR(512)'
-p14
-sg9
-I00
-sg10
-S'string'
-p15
-ssS'id'
-p16
-(dp17
-g4
-I512
-sg5
-I00
-sg6
-I1
-sg7
-S'INTEGER PRIMARY KEY AUTOINCREMENT'
-p18
-sg9
-I00
-sg10
-S'id'
-p19
-ss.

+ 0 - 82
applications/service/databases/c8b669d15150d7109e5f7ab36744a5b7_legacy_mysql_tables.table

@@ -1,82 +0,0 @@
-(dp1
-S'mysql_id'
-p2
-(dp3
-S'sortable'
-p4
-I2
-sS'sql'
-p5
-S'INTEGER REFERENCES legacy_mysql (id) ON DELETE CASCADE'
-p6
-sS'length'
-p7
-I512
-sS'notnull'
-p8
-I00
-sS'unique'
-p9
-I00
-sS'type'
-p10
-S'reference legacy_mysql'
-p11
-ssS'db_id'
-p12
-(dp13
-S'length'
-p14
-I512
-sS'unique'
-p15
-I00
-sS'sortable'
-p16
-I2
-sS'sql'
-p17
-S'INTEGER REFERENCES legacy_mysql (id) ON DELETE CASCADE'
-p18
-sS'notnull'
-p19
-I00
-sS'type'
-p20
-S'reference legacy_mysql'
-p21
-ssS'table_name'
-p22
-(dp23
-g14
-I512
-sg15
-I00
-sg16
-I3
-sg17
-S'CHAR(512)'
-p24
-sg19
-I00
-sg20
-S'string'
-p25
-ssS'id'
-p26
-(dp27
-g14
-I512
-sg15
-I00
-sg16
-I1
-sg17
-S'INTEGER PRIMARY KEY AUTOINCREMENT'
-p28
-sg19
-I00
-sg20
-S'id'
-p29
-ss.

BIN
applications/service/databases/db_info.sqlite


BIN
applications/service/databases/storage.sqlite


+ 6 - 86
applications/service/models/db_sql.py

@@ -1,91 +1,11 @@
 from gluon.custom_import import track_changes
 track_changes(True)
 
-from kitcube import KITCube
-import hashlib
-import re
-import time
+from sql_models import info
+from sql_models import kitcube
 
+info._adapter.reconnect()
 
-info = DAL('sqlite://info.storage.sqlite', pool_size=10)
-
-info.define_table('sql_db', 
-                    Field('name', 'string'),
-                    Field('host', 'string'),
-                    Field('database', 'string'),
-                    Field('modules', 'list:integer'),
-                    Field('flag', 'boolean', default=False))
-info.define_table('sql_module', 
-                    Field('mark', 'integer'),
-                    Field('name', 'string'),
-                    Field('db', 'reference sql_db'))
-info.define_table('sql_sensor', 
-                    Field('name', 'string'),
-                    Field('type', 'string'),
-                    Field('unit', 'string'),
-                    Field('length', 'integer'),
-                    Field('rname', 'string'),
-                    Field('module_mark', 'integer'),
-                    Field('module', 'reference sql_module'))
-
-for database in config_sql_database:
-    if database['disabled']: continue
-
-    db_name = database['name']
-    db_host = database['host']
-    db      = database['db']
-    modules = database['modules'] 
-    adapter = KITCube(db_name, db_host, db, modules)    
-    
-    q = (info.sql_db.database==db) & (info.sql_db.host==db_host)
-    r = info(q).select().last()  
-    
-    if r is None:
-        modules, sensors = adapter.extract()
-        
-        module_marks = [ m['mark'] for m in modules]
-        module_ids = {}
-
-        db_id = info.sql_db.insert(name=db_name, host=db_host, database=db, modules=module_marks)
-
-        for m in modules:
-            module_id = info.sql_module.insert(db=db_id, **m)
-            module_ids[m['mark']] = module_id
-
-        for s in sensors:
-            module_id = module_ids[ s['module_mark'] ]
-            info.sql_sensor.insert(module=module_id, **s)
-    else:
-        modules = info(info.sql_module).select()
-        sensors = info(info.sql_sensor).select()
-
-    adapter.define_tables(modules, sensors)
-
-
-
-
-
-    # if not r.flag:
-        # if r:
-        #     info.sql_dbs(info.sql_dbs.id==r.id).update()
-
-
-    # #_db = 'sql_' + hashlib.md5(database).hexdigest()
-    # _db = 'sql_' + database
-    # globals()[_db] = DAL( "%s/%s" % (host, database), migrate=False, pool_size=10, lazy_tables=True)
-    #
-    # # match table names if a pattern is defined in configuration
-    #
-    # # extract column name and type from tables
-    #
-    # dal_fields.append(Field(fld_name,
-    #                         type=dal_field_type[fld_type],
-    #                         length=fld_length,
-    #                         rname=rname))
-    #
-    #
-    #     globals()[_db].define_table(tab, *dal_fields)
-    #     session.sql_fields.append(dict(database=database, database=database, table=tab, fields=field_info))
-    #
-    # session.sql_dbs.append(_db)
-    # session.sql_tables.append(dict(database=database, dababase=database, tables=tables))
+for k in kitcube:
+    k.reconnect()
+    globals()[k.key] = k.connector

+ 0 - 0
applications/service/models/adei/adei.py.0 → applications/service/modules/adei/adei.py.0


+ 0 - 0
applications/service/models/adei/config_adei.py → applications/service/modules/adei/config_adei.py


+ 4 - 4
applications/service/models/config.py → applications/service/modules/config.py

@@ -15,7 +15,7 @@ config_adei_servers = [
     }
 ]
 
-config_sql_database = [
+sql_databases = [
     {
         'name': 'orca',
         'host': 'mysql://status:status@192.168.32.181',
@@ -37,7 +37,7 @@ config_sql_database = [
         'disabled': True
     },
     {
-        'name': 'kitcube_HEADS',
+        'key': 'heads',
         'host': 'mysql://cube:cube@miaopdv.ipe.kit.edu',
         'db': 'HEADS',
         'modules': 'Data_(?P<mod_mark>\d{3})_\w+',
@@ -47,7 +47,7 @@ config_sql_database = [
     }
 ]
 
-for i, r in enumerate(config_sql_database):
+for i, r in enumerate(sql_databases):
     if 'tables' not in r.keys():
         r['tables'] = []
     if 'field_ignore' not in r.keys():
@@ -56,4 +56,4 @@ for i, r in enumerate(config_sql_database):
         r['field_type_fix'] = {}
     if 'disabled' not in r.keys():
         r['disabled'] = False
-    config_sql_database[i].update(r)
+    sql_databases[i].update(r)

+ 29 - 124
applications/service/modules/kitcube.py

@@ -1,6 +1,6 @@
 import re
 from gluon import DAL, Field
-from gluon.dal import Row, Rows
+# from gluon.dal import Row, Rows
 
 dal_field_type = dict(
     id='id',
@@ -27,10 +27,10 @@ def search_objects2(axes, sensor_name, module_mark):
 
 
 class DBConnector(object):
-    def __init__(self, name, host, database):
+    def __init__(self, key, host, database):
         self.axis_list = 'Axislist'
         self.sensor_list = 'Sensorlist'
-        self.name = name
+        self.key = key
         self.host = host
         self.database = database
         self.uri = "%s/%s" % (self.host, self.database)
@@ -47,13 +47,13 @@ class DBConnector(object):
             f = [ Field(k['name'], type=k['type'], length=k['length'], rname=k['rname']) for k in s ]
             self.connector.define_table(mod['name'], *f)
     def reconnect(self):
-        self.connector.reconnect()
+        self.connector._adapter.reconnect()
 
 class KITCube(DBConnector):
-    def __init__(self, name, host, database, modules, ignore_fields=[], field_type_fix={}):
+    def __init__(self, key, host, database, modules, ignore_fields=[], field_type_fix={}):
         self.ignore_fields = ignore_fields
         self.field_type_fix = field_type_fix
-        super(KITCube, self).__init__(name, host, database)
+        super(KITCube, self).__init__(key, host, database)
 
         if isinstance(modules, basestring):
             self.module_pattern = re.compile(modules)
@@ -61,6 +61,11 @@ class KITCube(DBConnector):
             self.module_pattern = None
 
     def extract_modules(self):
+        ''' extract modules from database
+            
+            @return 
+                [{'name': <name>, 'mark': <module number>}, ... ]
+        '''
         tables = self.connector.executesql('show tables')
         if self.module_pattern is not None:
             matches = [ (tname, self.module_pattern.match(tname)) for tname, in tables ]
@@ -68,6 +73,23 @@ class KITCube(DBConnector):
         return modules
 
     def extract_sensors(self, modules):
+        ''' extract sensors from database
+
+            @input modules 
+                list of moudles to be extracted
+            @return:
+                [ {
+                    'name': <sensor name>,       # dots in name is coverted to underscore
+                    'rname': <sensor rname>,     # original name from db, if it contains dots
+                    'type': <sensor type>,
+                    'length': <length>,
+                    'unit': <unit>,
+                    'module_mark': 'module_mark'
+                   },
+                   ...
+                   ...
+                ]
+        '''
         fld_type_pattern = re.compile('(?P<fld_type>\w+)\((?P<fld_length>\d*)\)')
         sensor_units = self.extract_units()
         sensors = []
@@ -76,7 +98,7 @@ class KITCube(DBConnector):
             cols = self.connector.executesql('show columns from ' + mod['name'])
             for fld_name, fld_type, _, fld_key, _, _ in cols:
                 if '.' in fld_name:
-                    rname = fld_name
+                    rname = '`%s`' % fld_name
                     fld_name = fld_name.replace('.', '_')
                 else:
                     rname = None
@@ -127,120 +149,3 @@ class KITCube(DBConnector):
                               module=r[self.sensor_list].module, 
                               unit=r[self.axis_list].unit) for r in records ]
         return sensor_units
-
-    # def set_tables(self):
-    #     for mod in self.modules:
-    #         mark = mod['mark']
-    #         fields = []
-    #         for sns in self.sensors:
-    #             if sns['module_mark'] == mark:
-    #                 fields.append(
-    #                     Field(sns['name'], sns['type'], length=sns['length'], rname=sns['rname']))
-    #         self.connector.define_table(mod['name'], *fields)
-
-
-    # def extract_sensors(self, modules):
-    #     sensors = []
-    #     fld_type_pattern = re.compile('(?P<fld_type>\w+)\((?P<fld_length>\d*)\)')
-    #             sensors.append(dict(module_mark=mod['mark'], name=fld_name, type=fld_type, length=fld_length, rname=rname))
-    #     return sensors
-    # def extract_sensoraxis(self):
-    #     axes = self.extract_axes()
-    #     for mod in self.modules:
-    #         for sns in mod['sensors']:
-    #             unit = search_dicts(axes, sensor_name=(sns['rname'] or sns['name']), module_mark=mod['mark'])
-    #             sns.update({'unit': unit})
-    # def extract_axes(self):
-    #     q = (self._sql[self.sensor_list].axis == self._sql[self.axis_list].id)
-    #     res = self._sql(q).select(self._sql[self.sensor_list].name, 
-    #                               self._sql[self.sensor_list].module, 
-    #                               self._sql[self.axis_list].unit)
-    #     axes = [{ 'sensor_name': r[self.sensor_list].name,
-    #               'module_mark': r[self.sensor_list].module,
-    #               'unit': r[self.axis_list].unit
-    #             } for r in res]
-    #     return axes
-    # def get(self):
-    #     self.extract_modules()
-    #     self.extract_sensors()
-    #     self.extract_sensoraxis()
-    #     return self.modules
-    # def tables(self, _info):
-    #     pass
-
-def extract_db_info(config, _sql=None):
-    host     = config['host']
-    server   = config['server']
-    database = config['database']
-    sensor_groups  = config['sensor_groups']
-    axis_list      = config['axislist']
-    sensor_list    = config['sensorlist']
-    ignore_fields  = config['field_ignore']
-    field_type_fix = config['field_type_fix']
-
-    if not _sql:
-        _sql = DAL( "%s/%s" % (host, database), migrate=False, pool_size=1)
-
-    _sql.define_table(axis_list, Field('id'), Field('unit', 'string'))
-    _sql.define_table(sensor_list, Field('id'),
-                                   Field('name', 'string'),
-                                   Field('axis', 'reference %s' % axis_list),
-                                   Field('module', 'integer'))
-
-    q  = _sql[sensor_list].axis == _sql[axis_list].id
-    r  = _sql(q).select(_sql[sensor_list].name, _sql[sensor_list].module, _sql[axis_list].unit)
-    sensor_axis = r
-
-    tables_in_db = _sql.executesql('show tables')
-
-    if isinstance(sensor_groups, basestring):
-        pattern = re.compile(sensor_groups)
-        tables = [tab[0] for tab in tables_in_db if pattern.match(tab[0])]
-
-    fld_pattern = re.compile('(?P<fld_type>\w+)\((?P<fld_length>\d*)\)')
-    mod_pattern = re.compile('\w+_(?P<mod_number>\d{3})_\w+')
-
-    modules = { tab[0]:[ ] for tab in tables }
-    print tables, modules
-
-    for tab in tables:
-        m = mod_pattern.match(tab)
-        mod_number = int(m.group('mod_number'))
-
-        # columns from mysql table
-        cols =_sql.executesql('show columns from %s' % tab)
-
-        # extract fields from database and construct DAL fields
-        for fld_name, fld_type, _, fld_key, _, _ in cols:
-            if '.' in fld_name:
-                rname = '`' + fld_name + '`'
-                fld_name = fld_name.replace('.', '_')
-            else:
-                rname = None
-
-            field_long_name = '%s.%s' % (tab, fld_name)
-            if field_long_name in field_type_fix.keys():
-                fld_type = field_type_fix[field_long_name]
-
-            m = fld_pattern.match(fld_type)
-            if m:
-                fld_type = m.group('fld_type')
-                fld_length = m.group('fld_length')
-            else:
-                fld_length = None
-
-            if fld_key == 'PRI':
-                fld_type = 'id'
-
-            if fld_type in ['mediumblob', 'blob']:
-                continue
-            if field_long_name in ignore_fields:
-                continue
-
-            axis = sensor_axis.find(lambda r:
-                        r[sensor_list].name == fld_name and r[sensor_list].module == mod_number).first()
-            if axis:
-                axis = axis[axis_list].unit
-
-            modules[tab].append(dict(name=fld_name, type=fld_type, axis=axis))
-    return modules

+ 67 - 0
applications/service/modules/sql_models.py

@@ -0,0 +1,67 @@
+from gluon.dal import DAL, Field
+from config import sql_databases
+from kitcube import KITCube
+
+
+info = DAL('sqlite://info.storage.sqlite', 
+           pool_size=10,
+           check_reserved=False)
+
+info.define_table('sql_db', 
+                    Field('key', 'string'),
+                    Field('host', 'string'),
+                    Field('db', 'string'),
+                    Field('modules', 'list:integer'),
+                    Field('flag', 'boolean', default=False))
+info.define_table('sql_module', 
+                    Field('mark', 'integer'),
+                    Field('name', 'string'),
+                    Field('db_id', 'reference sql_db'))
+info.define_table('sql_sensor', 
+                    Field('name', 'string'),
+                    Field('type', 'string'),
+                    Field('unit', 'string'),
+                    Field('length', 'integer'),
+                    Field('rname', 'string'),
+                    Field('module_mark', 'integer'),
+                    Field('module', 'reference sql_module'))
+  
+kitcube = []
+
+for database in sql_databases:
+     if database['disabled']: continue
+     db_key  = database['key']
+     db_host = database['host']
+     db      = database['db']
+     modules = database['modules']
+    
+     q = (info.sql_db.db==db) & (info.sql_db.host==db_host)
+     r = info(q).select().last()  
+
+     connector = KITCube(db_key, db_host, db, modules)    
+    
+     if r is None:
+          modules, sensors = connector.extract()
+          module_marks = [ m['mark'] for m in modules]
+          module_ids = {}
+          
+          db_id = info.sql_db.insert(key=db_key, host=db_host, 
+                                   db=db, modules=module_marks)
+          for m in modules:
+               module_id = info.sql_module.insert(db_id=db_id, **m)
+               module_ids[m['mark']] = module_id
+          for s in sensors:
+               module_id = module_ids[ s['module_mark'] ]
+               info.sql_sensor.insert(module=module_id, **s)
+     else:
+          if r.key != db_key:
+               r.update_record(key=db_key)
+
+          modules = info(info.sql_module).select()
+          sensors = info(info.sql_sensor).select()
+
+     connector.connect(modules, sensors)
+     kitcube.append(connector)
+
+
+