66f4104d9498_init.py 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. """init
  2. Revision ID: 66f4104d9498
  3. Revises:
  4. Create Date: 2025-05-10 18:05:19.822335
  5. """
  6. from alembic import op
  7. import sqlalchemy as sa
  8. import geoalchemy2
  9. # revision identifiers, used by Alembic.
  10. revision = '66f4104d9498'
  11. down_revision = None
  12. branch_labels = None
  13. depends_on = None
  14. def upgrade():
  15. """升级数据库到当前版本"""
  16. # ### commands auto generated by Alembic - please adjust! ###
  17. op.create_table('Conventional_land_information',
  18. sa.Column('Lon', sa.Float(precision=53), nullable=False, comment='经度-Long.(°)'),
  19. sa.Column('Lat', sa.Float(precision=53), nullable=False, comment='纬度-Lat.(°)'),
  20. sa.Column('Altitude', sa.Numeric(), nullable=True, comment='海拔-Alt.(m)'),
  21. sa.Column('Landform', sa.Text(), nullable=True, comment='地貌类型'),
  22. sa.Column('Landuse', sa.Text(), nullable=True, comment='土地利用类型'),
  23. sa.Column('Soiltype', sa.Text(), nullable=True, comment='土壤类型'),
  24. sa.Column('Lithologic_type', sa.Text(), nullable=True, comment='岩性类型'),
  25. sa.PrimaryKeyConstraint('Lon', 'Lat'),
  26. comment='常规土地信息'
  27. )
  28. op.create_table('Point_information',
  29. sa.Column('Lon', sa.Float(precision=53), nullable=False, comment='经度-Long.(°)'),
  30. sa.Column('Lat', sa.Float(precision=53), nullable=False, comment='纬度-Lat.(°)'),
  31. sa.Column('Province', sa.Text(), nullable=False),
  32. sa.Column('City', sa.Text(), nullable=True, comment='市'),
  33. sa.Column('District', sa.Text(), nullable=True, comment='县'),
  34. sa.Column('Point_id', sa.Integer(), autoincrement=True, nullable=False, comment='唯一编码'),
  35. sa.PrimaryKeyConstraint('Point_id'),
  36. comment='点位信息'
  37. )
  38. op.create_table('fifty_thousand_survey_data',
  39. sa.Column('gid', sa.Integer(), autoincrement=True, nullable=False),
  40. sa.Column('id', sa.Float(precision=53), nullable=True),
  41. sa.Column('dwmc', sa.String(length=254), nullable=True),
  42. sa.Column('r_dwmc', sa.String(length=254), nullable=True),
  43. sa.Column('lat', sa.Float(precision=53), nullable=True),
  44. sa.Column('lon', sa.Float(precision=53), nullable=True),
  45. sa.Column('xmc', sa.String(length=254), nullable=True),
  46. sa.Column('zmc', sa.String(length=254), nullable=True),
  47. sa.Column('cmc', sa.String(length=254), nullable=True),
  48. sa.Column('tql_cd', sa.Float(precision=53), nullable=True),
  49. sa.Column('tql_as', sa.Float(precision=53), nullable=True),
  50. sa.Column('tql_pb', sa.Float(precision=53), nullable=True),
  51. sa.Column('ph', sa.Float(precision=53), nullable=True),
  52. sa.Column('zzm_cd', sa.Float(precision=53), nullable=True),
  53. sa.Column('zzm_as', sa.Float(precision=53), nullable=True),
  54. sa.Column('zzm_pb', sa.Float(precision=53), nullable=True),
  55. sa.Column('wzm_cd', sa.Float(precision=53), nullable=True),
  56. sa.Column('wzm_as', sa.Float(precision=53), nullable=True),
  57. sa.Column('wzm_pb', sa.Float(precision=53), nullable=True),
  58. sa.Column('tcb_cd', sa.Float(precision=53), nullable=True),
  59. sa.Column('tcb_as', sa.Float(precision=53), nullable=True),
  60. sa.Column('tcb_pb', sa.Float(precision=53), nullable=True),
  61. sa.Column('mcb_cd', sa.Float(precision=53), nullable=True),
  62. sa.Column('mcb_as', sa.Float(precision=53), nullable=True),
  63. sa.Column('mcb_pb', sa.Float(precision=53), nullable=True),
  64. sa.Column('tzs_cd', sa.Float(precision=53), nullable=True),
  65. sa.Column('tzs_as', sa.Float(precision=53), nullable=True),
  66. sa.Column('tzs_pb', sa.Float(precision=53), nullable=True),
  67. sa.Column('z_mzs_cd', sa.Float(precision=53), nullable=True),
  68. sa.Column('z_mzs_as', sa.Float(precision=53), nullable=True),
  69. sa.Column('z_mzs_pb', sa.Float(precision=53), nullable=True),
  70. sa.Column('w_mzs_cd', sa.Float(precision=53), nullable=True),
  71. sa.Column('w_mzs_as', sa.Float(precision=53), nullable=True),
  72. sa.Column('w_mzs_pb', sa.Float(precision=53), nullable=True),
  73. sa.Column('tzs_max', sa.Float(precision=53), nullable=True),
  74. sa.Column('mzs_max', sa.Float(precision=53), nullable=True),
  75. sa.Column('s_tfj_max', sa.Float(precision=53), nullable=True),
  76. sa.Column('s_mfj_max', sa.Float(precision=53), nullable=True),
  77. sa.Column('h_tfj_max', sa.Float(precision=53), nullable=True),
  78. sa.Column('h_mfj_max', sa.Float(precision=53), nullable=True),
  79. sa.Column('s_pdtj', sa.String(length=254), nullable=True),
  80. sa.Column('h_pdtj', sa.String(length=254), nullable=True),
  81. sa.Column('s_xtfx', sa.String(length=254), nullable=True),
  82. sa.Column('h_xtfx', sa.String(length=254), nullable=True),
  83. sa.Column('mzs_cd_max', sa.Float(precision=53), nullable=True),
  84. sa.Column('mzs_as_max', sa.Float(precision=53), nullable=True),
  85. sa.Column('mzs_pd_max', sa.Float(precision=53), nullable=True),
  86. sa.Column('tzs_cd_fj', sa.Float(precision=53), nullable=True),
  87. sa.Column('tzs_as_fj', sa.Float(precision=53), nullable=True),
  88. sa.Column('tzs_pb_fj', sa.Float(precision=53), nullable=True),
  89. sa.Column('mzs_cd_fj', sa.Float(precision=53), nullable=True),
  90. sa.Column('mzs_as_fj', sa.Float(precision=53), nullable=True),
  91. sa.Column('mzs_pb_fj', sa.Float(precision=53), nullable=True),
  92. sa.Column('s_cd_pdtj', sa.String(length=254), nullable=True),
  93. sa.Column('s_cd_pdtj1', sa.String(length=254), nullable=True),
  94. sa.Column('s_pb_pdtj', sa.String(length=254), nullable=True),
  95. sa.Column('s_cd_xtfx', sa.String(length=254), nullable=True),
  96. sa.Column('s_as_xtfx', sa.String(length=254), nullable=True),
  97. sa.Column('s_pb_xtfx', sa.String(length=254), nullable=True),
  98. sa.Column('s_cd_fz', sa.Float(precision=53), nullable=True),
  99. sa.Column('s_as_fz', sa.Float(precision=53), nullable=True),
  100. sa.Column('cd_as_pdtj', sa.String(length=254), nullable=True),
  101. sa.Column('cd_as_fhwr', sa.String(length=254), nullable=True),
  102. sa.Column('wrlx', sa.String(length=254), nullable=True),
  103. sa.Column('wrlx_pb', sa.String(length=254), nullable=True),
  104. sa.Column('cec__cmol_', sa.Float(precision=53), nullable=True),
  105. sa.Column('tom_g_kg_', sa.Float(precision=53), nullable=True),
  106. sa.Column('mmax_cd', sa.Float(precision=53), nullable=True),
  107. sa.Column('mmax_as', sa.Float(precision=53), nullable=True),
  108. sa.Column('mmax_pb', sa.Float(precision=53), nullable=True),
  109. sa.Column('bcf_cd', sa.Float(precision=53), nullable=True),
  110. sa.Column('bcf_as', sa.Float(precision=53), nullable=True),
  111. sa.Column('bcf_pb', sa.Float(precision=53), nullable=True),
  112. sa.Column('nl_g_kg_', sa.Float(precision=53), nullable=True),
  113. sa.Column('fl_g_kg_', sa.Float(precision=53), nullable=True),
  114. sa.Column('sl_g_kg_', sa.Float(precision=53), nullable=True),
  115. sa.Column('nl_zb', sa.Float(precision=53), nullable=True),
  116. sa.Column('fl_zb', sa.Float(precision=53), nullable=True),
  117. sa.Column('sl_zb', sa.Float(precision=53), nullable=True),
  118. sa.Column('trlx', sa.String(length=254), nullable=True),
  119. sa.Column('dtpa_cd', sa.Float(precision=53), nullable=True),
  120. sa.Column('lin_suan_er_qing_an', sa.Float(precision=53), nullable=True),
  121. sa.Column('dtpa_pb', sa.Float(precision=53), nullable=True),
  122. sa.Column('zb_cd', sa.Float(precision=53), nullable=True),
  123. sa.Column('zb_as', sa.Float(precision=53), nullable=True),
  124. sa.Column('zb_pb', sa.Float(precision=53), nullable=True),
  125. sa.Column('tql_cr', sa.Float(precision=53), nullable=True),
  126. sa.Column('tql_hg', sa.Float(precision=53), nullable=True),
  127. sa.Column('f_2_00mm', sa.String(length=254), nullable=True),
  128. sa.Column('2_1mm', sa.Float(precision=53), nullable=True),
  129. sa.Column('1_0_5mm', sa.Float(precision=53), nullable=True),
  130. sa.Column('0_5_0_25mm', sa.Float(precision=53), nullable=True),
  131. sa.Column('0_25_0_05m', sa.Float(precision=53), nullable=True),
  132. sa.Column('0_05_0_02m', sa.Float(precision=53), nullable=True),
  133. sa.Column('0_02_0_002', sa.Float(precision=53), nullable=True),
  134. sa.Column('f_0_002mm', sa.Float(precision=53), nullable=True),
  135. sa.Column('ph_fj', sa.Float(precision=53), nullable=True),
  136. sa.Column('ph_fj_2', sa.Float(precision=53), nullable=True),
  137. sa.Column('geom', geoalchemy2.types.Geometry(geometry_type='POINT', from_text='ST_GeomFromEWKT', name='geometry'), nullable=True),
  138. sa.PrimaryKeyConstraint('gid')
  139. )
  140. # 注释掉索引创建
  141. # op.create_index('idx_fifty_thousand_survey_data_geom', 'fifty_thousand_survey_data', ['geom'], unique=False, postgresql_using='gist')
  142. # op.create_index(op.f('ix_fifty_thousand_survey_data_geom'), 'fifty_thousand_survey_data', ['geom'], unique=False)
  143. op.create_table('raster_table',
  144. sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
  145. sa.Column('rast', geoalchemy2.types.Raster(from_text='raster', name='raster'), nullable=True),
  146. sa.PrimaryKeyConstraint('id')
  147. )
  148. # op.create_index(op.f('ix_raster_table_rast'), 'raster_table', ['rast'], unique=False)
  149. op.create_table('surveydata',
  150. sa.Column('id', sa.Float(precision=53), autoincrement=True, nullable=False),
  151. sa.Column('dwmc', sa.String(length=50), nullable=True),
  152. sa.Column('r_dwmc', sa.String(length=50), nullable=True),
  153. sa.Column('lat', sa.Numeric(precision=9, scale=6), nullable=True),
  154. sa.Column('lon', sa.Numeric(precision=9, scale=6), nullable=True),
  155. sa.Column('xmc', sa.String(length=50), nullable=True),
  156. sa.Column('zmc', sa.String(length=50), nullable=True),
  157. sa.Column('cmc', sa.String(length=50), nullable=True),
  158. sa.Column('tql_cd', sa.Numeric(precision=10, scale=6), nullable=True),
  159. sa.Column('tql_as', sa.Numeric(precision=10, scale=6), nullable=True),
  160. sa.Column('tql_pb', sa.Numeric(precision=10, scale=6), nullable=True),
  161. sa.Column('ph', sa.Numeric(precision=4, scale=2), nullable=True),
  162. sa.Column('zzm_cd', sa.Numeric(precision=10, scale=6), nullable=True),
  163. sa.Column('zzm_as', sa.Numeric(precision=10, scale=6), nullable=True),
  164. sa.Column('zzm_pb', sa.Numeric(precision=10, scale=6), nullable=True),
  165. sa.Column('wzm_cd', sa.Numeric(precision=10, scale=6), nullable=True),
  166. sa.Column('wzm_as', sa.Numeric(precision=10, scale=6), nullable=True),
  167. sa.Column('wzm_pb', sa.Numeric(precision=10, scale=6), nullable=True),
  168. sa.Column('tcb_cd', sa.Numeric(precision=10, scale=6), nullable=True),
  169. sa.Column('tcb_as', sa.Numeric(precision=10, scale=6), nullable=True),
  170. sa.Column('tcb_pb', sa.Numeric(precision=10, scale=6), nullable=True),
  171. sa.Column('mcb_cd', sa.Numeric(precision=10, scale=6), nullable=True),
  172. sa.Column('mcb_as', sa.Numeric(precision=10, scale=6), nullable=True),
  173. sa.Column('mcb_pb', sa.Numeric(precision=10, scale=6), nullable=True),
  174. sa.Column('tzs_cd', sa.Numeric(precision=10, scale=6), nullable=True),
  175. sa.Column('tzs_as', sa.Numeric(precision=10, scale=6), nullable=True),
  176. sa.Column('tzs_pb', sa.Numeric(precision=10, scale=6), nullable=True),
  177. sa.Column('z_mzs_cd', sa.Numeric(precision=10, scale=6), nullable=True),
  178. sa.Column('z_mzs_as', sa.Numeric(precision=10, scale=6), nullable=True),
  179. sa.Column('z_mzs_pb', sa.Numeric(precision=10, scale=6), nullable=True),
  180. sa.Column('w_mzs_cd', sa.Numeric(precision=10, scale=6), nullable=True),
  181. sa.Column('w_mzs_as', sa.Numeric(precision=10, scale=6), nullable=True),
  182. sa.Column('w_mzs_pb', sa.Numeric(precision=10, scale=6), nullable=True),
  183. sa.Column('tzs_max', sa.Numeric(precision=10, scale=6), nullable=True),
  184. sa.Column('mzs_max', sa.Numeric(precision=10, scale=6), nullable=True),
  185. sa.Column('s_tfj_max', sa.Numeric(precision=10, scale=6), nullable=True),
  186. sa.Column('s_mfj_max', sa.Numeric(precision=10, scale=6), nullable=True),
  187. sa.Column('h_tfj_max', sa.Numeric(precision=10, scale=6), nullable=True),
  188. sa.Column('h_mfj_max', sa.Numeric(precision=10, scale=6), nullable=True),
  189. sa.Column('s_pdtj', sa.String(length=10), nullable=True),
  190. sa.Column('h_pdtj', sa.String(length=10), nullable=True),
  191. sa.Column('s_xtfx', sa.String(length=50), nullable=True),
  192. sa.Column('h_xtfx', sa.String(length=50), nullable=True),
  193. sa.Column('cec_cmol', sa.Numeric(precision=10, scale=6), nullable=True),
  194. sa.Column('tom_g_kg', sa.Numeric(precision=10, scale=6), nullable=True),
  195. sa.Column('trlx', sa.String(length=50), nullable=True),
  196. sa.Column('dtpa_cd', sa.Numeric(precision=10, scale=6), nullable=True),
  197. sa.Column('dtpa_pb', sa.Numeric(precision=10, scale=6), nullable=True),
  198. sa.Column('geom', geoalchemy2.types.Geometry(geometry_type='POINT', srid=4326, from_text='ST_GeomFromEWKT', name='geometry'), nullable=True),
  199. sa.Column('mzs_cd_max', sa.Float(precision=53), nullable=True),
  200. sa.Column('mzs_as_max', sa.Float(precision=53), nullable=True),
  201. sa.Column('mzs_pd_max', sa.Float(precision=53), nullable=True),
  202. sa.Column('tzs_cd_fj', sa.Float(precision=53), nullable=True),
  203. sa.Column('tzs_as_fj', sa.Float(precision=53), nullable=True),
  204. sa.Column('tzs_pb_fj', sa.Float(precision=53), nullable=True),
  205. sa.Column('mzs_cd_fj', sa.Float(precision=53), nullable=True),
  206. sa.Column('mzs_as_fj', sa.Float(precision=53), nullable=True),
  207. sa.Column('mzs_pb_fj', sa.Float(precision=53), nullable=True),
  208. sa.Column('s_cd_pdtj', sa.String(), nullable=True),
  209. sa.Column('s_cd_pdtj1', sa.String(), nullable=True),
  210. sa.Column('s_pb_pdtj', sa.String(), nullable=True),
  211. sa.Column('s_cd_xtfx', sa.String(), nullable=True),
  212. sa.Column('s_as_xtfx', sa.String(), nullable=True),
  213. sa.Column('s_pb_xtfx', sa.String(), nullable=True),
  214. sa.Column('s_cd_fz', sa.Float(precision=53), nullable=True),
  215. sa.Column('s_as_fz', sa.Float(precision=53), nullable=True),
  216. sa.Column('cd_as_pdtj', sa.String(), nullable=True),
  217. sa.Column('cd_as_fhwr', sa.String(), nullable=True),
  218. sa.Column('wrlx', sa.String(), nullable=True),
  219. sa.Column('wrlx_pb', sa.String(), nullable=True),
  220. sa.Column('cec__cmol_', sa.Float(precision=53), nullable=True),
  221. sa.Column('tom_g_kg_', sa.Float(precision=53), nullable=True),
  222. sa.Column('mmax_cd', sa.Float(precision=53), nullable=True),
  223. sa.Column('mmax_as', sa.Float(precision=53), nullable=True),
  224. sa.Column('mmax_pb', sa.Float(precision=53), nullable=True),
  225. sa.Column('bcf_cd', sa.Float(precision=53), nullable=True),
  226. sa.Column('bcf_as', sa.Float(precision=53), nullable=True),
  227. sa.Column('bcf_pb', sa.Float(precision=53), nullable=True),
  228. sa.Column('nl_g_kg_', sa.Float(precision=53), nullable=True),
  229. sa.Column('fl_g_kg_', sa.Float(precision=53), nullable=True),
  230. sa.Column('sl_g_kg_', sa.Float(precision=53), nullable=True),
  231. sa.Column('nl_zb', sa.Float(precision=53), nullable=True),
  232. sa.Column('fl_zb', sa.Float(precision=53), nullable=True),
  233. sa.Column('sl_zb', sa.Float(precision=53), nullable=True),
  234. sa.Column('lin_suan_er_qing_an', sa.Float(precision=53), nullable=True),
  235. sa.Column('zb_cd', sa.Float(precision=53), nullable=True),
  236. sa.Column('zb_as', sa.Float(precision=53), nullable=True),
  237. sa.Column('zb_pb', sa.Float(precision=53), nullable=True),
  238. sa.Column('tql_cr', sa.Float(precision=53), nullable=True),
  239. sa.Column('tql_hg', sa.Float(precision=53), nullable=True),
  240. sa.Column('f_2_00mm', sa.String(), nullable=True),
  241. sa.Column('2_1mm', sa.Float(precision=53), nullable=True),
  242. sa.Column('1_0_5mm', sa.Float(precision=53), nullable=True),
  243. sa.Column('0_5_0_25mm', sa.Float(precision=53), nullable=True),
  244. sa.Column('0_25_0_05m', sa.Float(precision=53), nullable=True),
  245. sa.Column('0_05_0_02m', sa.Float(precision=53), nullable=True),
  246. sa.Column('0_02_0_002', sa.Float(precision=53), nullable=True),
  247. sa.Column('f_0_002mm', sa.Float(precision=53), nullable=True),
  248. sa.Column('ph_fj', sa.Float(precision=53), nullable=True),
  249. sa.Column('ph_fj_2', sa.Float(precision=53), nullable=True),
  250. sa.PrimaryKeyConstraint('id')
  251. )
  252. # op.create_index('idx_surveydata_geom', 'surveydata', ['geom'], unique=False, postgresql_using='gist')
  253. # op.create_index(op.f('ix_surveydata_geom'), 'surveydata', ['geom'], unique=False)
  254. op.create_table('unit_ceil',
  255. sa.Column('gid', sa.Integer(), autoincrement=True, nullable=False),
  256. sa.Column('OBJECTID', sa.Float(precision=53), nullable=True),
  257. sa.Column('BSM', sa.String(length=20), nullable=True),
  258. sa.Column('PXZQDM', sa.String(length=2), nullable=True),
  259. sa.Column('PXZQMC', sa.String(length=50), nullable=True),
  260. sa.Column('CXZQDM', sa.String(length=4), nullable=True),
  261. sa.Column('CXZQMC', sa.String(length=50), nullable=True),
  262. sa.Column('SUM_NYDTBM', sa.Numeric(), nullable=True),
  263. sa.Column('XCDYBM', sa.String(length=20), nullable=True),
  264. sa.Column('Shape_Leng', sa.Numeric(), nullable=True),
  265. sa.Column('Shape_Area', sa.Numeric(), nullable=True),
  266. sa.Column('geom', geoalchemy2.types.Geometry(geometry_type='GEOMETRYZM', srid=4490, dimension=4, from_text='ST_GeomFromEWKT', name='geometry'), nullable=True),
  267. sa.PrimaryKeyConstraint('gid')
  268. )
  269. # op.create_index('idx_unit_ceil_geom', 'unit_ceil', ['geom'], unique=False, postgresql_using='gist')
  270. # op.create_index(op.f('ix_unit_ceil_geom'), 'unit_ceil', ['geom'], unique=False)
  271. # ### end Alembic commands ###
  272. def downgrade():
  273. """将数据库降级到上一版本"""
  274. # ### commands auto generated by Alembic - please adjust! ###
  275. op.drop_index(op.f('ix_unit_ceil_geom'), table_name='unit_ceil')
  276. op.drop_index('idx_unit_ceil_geom', table_name='unit_ceil', postgresql_using='gist')
  277. op.drop_table('unit_ceil')
  278. op.drop_index(op.f('ix_surveydata_geom'), table_name='surveydata')
  279. op.drop_index('idx_surveydata_geom', table_name='surveydata', postgresql_using='gist')
  280. op.drop_table('surveydata')
  281. op.drop_index(op.f('ix_raster_table_rast'), table_name='raster_table')
  282. op.drop_table('raster_table')
  283. op.drop_index(op.f('ix_fifty_thousand_survey_data_geom'), table_name='fifty_thousand_survey_data')
  284. op.drop_index('idx_fifty_thousand_survey_data_geom', table_name='fifty_thousand_survey_data', postgresql_using='gist')
  285. op.drop_table('fifty_thousand_survey_data')
  286. op.drop_table('Point_information')
  287. op.drop_table('Conventional_land_information')
  288. # ### end Alembic commands ###