/lib/galaxy/model/mapping.py

https://bitbucket.org/cistrome/cistrome-harvard/ · Python · 1910 lines · 1580 code · 266 blank · 64 comment · 5 complexity · 671bc2833c7941cf78847d9c8f1d10bd MD5 · raw file

Large files are truncated click here to view the full file

  1. """
  2. Details of how the data model objects are mapped onto the relational database
  3. are encapsulated here.
  4. """
  5. import logging
  6. import pkg_resources
  7. from sqlalchemy import and_, asc, Boolean, Column, DateTime, desc, ForeignKey, Integer, MetaData, not_, Numeric, select, String, Table, TEXT, Unicode, UniqueConstraint
  8. from sqlalchemy.ext.associationproxy import association_proxy
  9. from sqlalchemy.ext.orderinglist import ordering_list
  10. from sqlalchemy.types import BigInteger
  11. from sqlalchemy.orm import backref, object_session, relation, mapper, class_mapper
  12. from sqlalchemy.orm.collections import attribute_mapped_collection
  13. from galaxy import model
  14. from galaxy.model.orm.engine_factory import build_engine
  15. from galaxy.model.orm.now import now
  16. from galaxy.model.custom_types import JSONType, MetadataType, TrimmedString, UUIDType
  17. from galaxy.model.base import ModelMapping
  18. from galaxy.security import GalaxyRBACAgent
  19. log = logging.getLogger( __name__ )
  20. metadata = MetaData()
  21. model.User.table = Table( "galaxy_user", metadata,
  22. Column( "id", Integer, primary_key=True),
  23. Column( "create_time", DateTime, default=now ),
  24. Column( "update_time", DateTime, default=now, onupdate=now ),
  25. Column( "email", TrimmedString( 255 ), index=True, nullable=False ),
  26. Column( "username", TrimmedString( 255 ), index=True, unique=True ),
  27. Column( "password", TrimmedString( 255 ), nullable=False ),
  28. Column( "external", Boolean, default=False ),
  29. Column( "form_values_id", Integer, ForeignKey( "form_values.id" ), index=True ),
  30. Column( "deleted", Boolean, index=True, default=False ),
  31. Column( "purged", Boolean, index=True, default=False ),
  32. Column( "disk_usage", Numeric( 15, 0 ), index=True ) ,
  33. Column( "active", Boolean, index=True, default=True, nullable=False ),
  34. Column( "activation_token", TrimmedString( 64 ), nullable=True, index=True ) )
  35. model.UserAddress.table = Table( "user_address", metadata,
  36. Column( "id", Integer, primary_key=True),
  37. Column( "create_time", DateTime, default=now ),
  38. Column( "update_time", DateTime, default=now, onupdate=now ),
  39. Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True ),
  40. Column( "desc", TrimmedString( 255 )),
  41. Column( "name", TrimmedString( 255 ), nullable=False),
  42. Column( "institution", TrimmedString( 255 )),
  43. Column( "address", TrimmedString( 255 ), nullable=False),
  44. Column( "city", TrimmedString( 255 ), nullable=False),
  45. Column( "state", TrimmedString( 255 ), nullable=False),
  46. Column( "postal_code", TrimmedString( 255 ), nullable=False),
  47. Column( "country", TrimmedString( 255 ), nullable=False),
  48. Column( "phone", TrimmedString( 255 )),
  49. Column( "deleted", Boolean, index=True, default=False ),
  50. Column( "purged", Boolean, index=True, default=False ) )
  51. model.UserOpenID.table = Table( "galaxy_user_openid", metadata,
  52. Column( "id", Integer, primary_key=True ),
  53. Column( "create_time", DateTime, default=now ),
  54. Column( "update_time", DateTime, index=True, default=now, onupdate=now ),
  55. Column( "session_id", Integer, ForeignKey( "galaxy_session.id" ), index=True ),
  56. Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True ),
  57. Column( "openid", TEXT, index=True, unique=True ),
  58. Column( "provider", TrimmedString( 255 ) ),
  59. )
  60. model.History.table = Table( "history", metadata,
  61. Column( "id", Integer, primary_key=True),
  62. Column( "create_time", DateTime, default=now ),
  63. Column( "update_time", DateTime, index=True, default=now, onupdate=now ),
  64. Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True ),
  65. Column( "name", TrimmedString( 255 ) ),
  66. Column( "hid_counter", Integer, default=1 ),
  67. Column( "deleted", Boolean, index=True, default=False ),
  68. Column( "purged", Boolean, index=True, default=False ),
  69. Column( "importing", Boolean, index=True, default=False ),
  70. Column( "genome_build", TrimmedString( 40 ) ),
  71. Column( "importable", Boolean, default=False ),
  72. Column( "slug", TEXT, index=True ),
  73. Column( "published", Boolean, index=True, default=False ) )
  74. model.HistoryUserShareAssociation.table = Table( "history_user_share_association", metadata,
  75. Column( "id", Integer, primary_key=True ),
  76. Column( "history_id", Integer, ForeignKey( "history.id" ), index=True ),
  77. Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True )
  78. )
  79. model.HistoryDatasetAssociation.table = Table( "history_dataset_association", metadata,
  80. Column( "id", Integer, primary_key=True ),
  81. Column( "history_id", Integer, ForeignKey( "history.id" ), index=True ),
  82. Column( "dataset_id", Integer, ForeignKey( "dataset.id" ), index=True ),
  83. Column( "create_time", DateTime, default=now ),
  84. Column( "update_time", DateTime, default=now, onupdate=now ),
  85. Column( "state", TrimmedString( 64 ), index=True, key="_state" ),
  86. Column( "copied_from_history_dataset_association_id", Integer, ForeignKey( "history_dataset_association.id" ), nullable=True ),
  87. Column( "copied_from_library_dataset_dataset_association_id", Integer, ForeignKey( "library_dataset_dataset_association.id" ), nullable=True ),
  88. Column( "hid", Integer ),
  89. Column( "name", TrimmedString( 255 ) ),
  90. Column( "info", TrimmedString( 255 ) ),
  91. Column( "blurb", TrimmedString( 255 ) ),
  92. Column( "peek" , TEXT ),
  93. Column( "tool_version" , TEXT ),
  94. Column( "extension", TrimmedString( 64 ) ),
  95. Column( "metadata", MetadataType(), key="_metadata" ),
  96. Column( "parent_id", Integer, ForeignKey( "history_dataset_association.id" ), nullable=True ),
  97. Column( "designation", TrimmedString( 255 ) ),
  98. Column( "deleted", Boolean, index=True, default=False ),
  99. Column( "purged", Boolean, index=True, default=False ),
  100. Column( "visible", Boolean ),
  101. Column( "extended_metadata_id", Integer,
  102. ForeignKey( "extended_metadata.id" ), index=True )
  103. )
  104. model.Dataset.table = Table( "dataset", metadata,
  105. Column( "id", Integer, primary_key=True ),
  106. Column( "create_time", DateTime, default=now ),
  107. Column( "update_time", DateTime, index=True, default=now, onupdate=now ),
  108. Column( "state", TrimmedString( 64 ), index=True ),
  109. Column( "deleted", Boolean, index=True, default=False ),
  110. Column( "purged", Boolean, index=True, default=False ),
  111. Column( "purgable", Boolean, default=True ),
  112. Column( "object_store_id", TrimmedString( 255 ), index=True ),
  113. Column( "external_filename" , TEXT ),
  114. Column( "_extra_files_path", TEXT ),
  115. Column( 'file_size', Numeric( 15, 0 ) ),
  116. Column( 'total_size', Numeric( 15, 0 ) ),
  117. Column( 'uuid', UUIDType() ) )
  118. model.HistoryDatasetAssociationDisplayAtAuthorization.table = Table( "history_dataset_association_display_at_authorization", metadata,
  119. Column( "id", Integer, primary_key=True ),
  120. Column( "create_time", DateTime, default=now ),
  121. Column( "update_time", DateTime, index=True, default=now, onupdate=now ),
  122. Column( "history_dataset_association_id", Integer, ForeignKey( "history_dataset_association.id" ), index=True ),
  123. Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True ),
  124. Column( "site", TrimmedString( 255 ) ) )
  125. model.HistoryDatasetAssociationSubset.table = Table( "history_dataset_association_subset", metadata,
  126. Column( "id", Integer, primary_key=True ),
  127. Column( "history_dataset_association_id", Integer, ForeignKey( "history_dataset_association.id" ), index=True ),
  128. Column( "history_dataset_association_subset_id", Integer, ForeignKey( "history_dataset_association.id" ), index=True ),
  129. Column( "location", Unicode(255), index=True) )
  130. model.ImplicitlyConvertedDatasetAssociation.table = Table( "implicitly_converted_dataset_association", metadata,
  131. Column( "id", Integer, primary_key=True ),
  132. Column( "create_time", DateTime, default=now ),
  133. Column( "update_time", DateTime, default=now, onupdate=now ),
  134. Column( "hda_id", Integer, ForeignKey( "history_dataset_association.id" ), index=True, nullable=True ),
  135. Column( "ldda_id", Integer, ForeignKey( "library_dataset_dataset_association.id" ), index=True, nullable=True ),
  136. Column( "hda_parent_id", Integer, ForeignKey( "history_dataset_association.id" ), index=True ),
  137. Column( "ldda_parent_id", Integer, ForeignKey( "library_dataset_dataset_association.id" ), index=True ),
  138. Column( "deleted", Boolean, index=True, default=False ),
  139. Column( "metadata_safe", Boolean, index=True, default=True ),
  140. Column( "type", TrimmedString( 255 ) ) )
  141. model.ValidationError.table = Table( "validation_error", metadata,
  142. Column( "id", Integer, primary_key=True ),
  143. Column( "dataset_id", Integer, ForeignKey( "history_dataset_association.id" ), index=True ),
  144. Column( "message", TrimmedString( 255 ) ),
  145. Column( "err_type", TrimmedString( 64 ) ),
  146. Column( "attributes", TEXT ) )
  147. model.Group.table = Table( "galaxy_group", metadata,
  148. Column( "id", Integer, primary_key=True ),
  149. Column( "create_time", DateTime, default=now ),
  150. Column( "update_time", DateTime, default=now, onupdate=now ),
  151. Column( "name", String( 255 ), index=True, unique=True ),
  152. Column( "deleted", Boolean, index=True, default=False ) )
  153. model.UserGroupAssociation.table = Table( "user_group_association", metadata,
  154. Column( "id", Integer, primary_key=True ),
  155. Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True ),
  156. Column( "group_id", Integer, ForeignKey( "galaxy_group.id" ), index=True ),
  157. Column( "create_time", DateTime, default=now ),
  158. Column( "update_time", DateTime, default=now, onupdate=now ) )
  159. model.UserRoleAssociation.table = Table( "user_role_association", metadata,
  160. Column( "id", Integer, primary_key=True ),
  161. Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True ),
  162. Column( "role_id", Integer, ForeignKey( "role.id" ), index=True ),
  163. Column( "create_time", DateTime, default=now ),
  164. Column( "update_time", DateTime, default=now, onupdate=now ) )
  165. model.GroupRoleAssociation.table = Table( "group_role_association", metadata,
  166. Column( "id", Integer, primary_key=True ),
  167. Column( "group_id", Integer, ForeignKey( "galaxy_group.id" ), index=True ),
  168. Column( "role_id", Integer, ForeignKey( "role.id" ), index=True ),
  169. Column( "create_time", DateTime, default=now ),
  170. Column( "update_time", DateTime, default=now, onupdate=now ) )
  171. model.Role.table = Table( "role", metadata,
  172. Column( "id", Integer, primary_key=True ),
  173. Column( "create_time", DateTime, default=now ),
  174. Column( "update_time", DateTime, default=now, onupdate=now ),
  175. Column( "name", String( 255 ), index=True, unique=True ),
  176. Column( "description", TEXT ),
  177. Column( "type", String( 40 ), index=True ),
  178. Column( "deleted", Boolean, index=True, default=False ) )
  179. model.UserQuotaAssociation.table = Table( "user_quota_association", metadata,
  180. Column( "id", Integer, primary_key=True ),
  181. Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True ),
  182. Column( "quota_id", Integer, ForeignKey( "quota.id" ), index=True ),
  183. Column( "create_time", DateTime, default=now ),
  184. Column( "update_time", DateTime, default=now, onupdate=now ) )
  185. model.GroupQuotaAssociation.table = Table( "group_quota_association", metadata,
  186. Column( "id", Integer, primary_key=True ),
  187. Column( "group_id", Integer, ForeignKey( "galaxy_group.id" ), index=True ),
  188. Column( "quota_id", Integer, ForeignKey( "quota.id" ), index=True ),
  189. Column( "create_time", DateTime, default=now ),
  190. Column( "update_time", DateTime, default=now, onupdate=now ) )
  191. model.Quota.table = Table( "quota", metadata,
  192. Column( "id", Integer, primary_key=True ),
  193. Column( "create_time", DateTime, default=now ),
  194. Column( "update_time", DateTime, default=now, onupdate=now ),
  195. Column( "name", String( 255 ), index=True, unique=True ),
  196. Column( "description", TEXT ),
  197. Column( "bytes", BigInteger ),
  198. Column( "operation", String( 8 ) ),
  199. Column( "deleted", Boolean, index=True, default=False ) )
  200. model.DefaultQuotaAssociation.table = Table( "default_quota_association", metadata,
  201. Column( "id", Integer, primary_key=True ),
  202. Column( "create_time", DateTime, default=now ),
  203. Column( "update_time", DateTime, default=now, onupdate=now ),
  204. Column( "type", String( 32 ), index=True, unique=True ),
  205. Column( "quota_id", Integer, ForeignKey( "quota.id" ), index=True ) )
  206. model.DatasetPermissions.table = Table( "dataset_permissions", metadata,
  207. Column( "id", Integer, primary_key=True ),
  208. Column( "create_time", DateTime, default=now ),
  209. Column( "update_time", DateTime, default=now, onupdate=now ),
  210. Column( "action", TEXT ),
  211. Column( "dataset_id", Integer, ForeignKey( "dataset.id" ), index=True ),
  212. Column( "role_id", Integer, ForeignKey( "role.id" ), index=True ) )
  213. model.LibraryPermissions.table = Table( "library_permissions", metadata,
  214. Column( "id", Integer, primary_key=True ),
  215. Column( "create_time", DateTime, default=now ),
  216. Column( "update_time", DateTime, default=now, onupdate=now ),
  217. Column( "action", TEXT ),
  218. Column( "library_id", Integer, ForeignKey( "library.id" ), nullable=True, index=True ),
  219. Column( "role_id", Integer, ForeignKey( "role.id" ), index=True ) )
  220. model.LibraryFolderPermissions.table = Table( "library_folder_permissions", metadata,
  221. Column( "id", Integer, primary_key=True ),
  222. Column( "create_time", DateTime, default=now ),
  223. Column( "update_time", DateTime, default=now, onupdate=now ),
  224. Column( "action", TEXT ),
  225. Column( "library_folder_id", Integer, ForeignKey( "library_folder.id" ), nullable=True, index=True ),
  226. Column( "role_id", Integer, ForeignKey( "role.id" ), index=True ) )
  227. model.LibraryDatasetPermissions.table = Table( "library_dataset_permissions", metadata,
  228. Column( "id", Integer, primary_key=True ),
  229. Column( "create_time", DateTime, default=now ),
  230. Column( "update_time", DateTime, default=now, onupdate=now ),
  231. Column( "action", TEXT ),
  232. Column( "library_dataset_id", Integer, ForeignKey( "library_dataset.id" ), nullable=True, index=True ),
  233. Column( "role_id", Integer, ForeignKey( "role.id" ), index=True ) )
  234. model.LibraryDatasetDatasetAssociationPermissions.table = Table( "library_dataset_dataset_association_permissions", metadata,
  235. Column( "id", Integer, primary_key=True ),
  236. Column( "create_time", DateTime, default=now ),
  237. Column( "update_time", DateTime, default=now, onupdate=now ),
  238. Column( "action", TEXT ),
  239. Column( "library_dataset_dataset_association_id", Integer, ForeignKey( "library_dataset_dataset_association.id" ), nullable=True, index=True ),
  240. Column( "role_id", Integer, ForeignKey( "role.id" ), index=True ) )
  241. model.DefaultUserPermissions.table = Table( "default_user_permissions", metadata,
  242. Column( "id", Integer, primary_key=True ),
  243. Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True ),
  244. Column( "action", TEXT ),
  245. Column( "role_id", Integer, ForeignKey( "role.id" ), index=True ) )
  246. model.DefaultHistoryPermissions.table = Table( "default_history_permissions", metadata,
  247. Column( "id", Integer, primary_key=True ),
  248. Column( "history_id", Integer, ForeignKey( "history.id" ), index=True ),
  249. Column( "action", TEXT ),
  250. Column( "role_id", Integer, ForeignKey( "role.id" ), index=True ) )
  251. model.LibraryDataset.table = Table( "library_dataset", metadata,
  252. Column( "id", Integer, primary_key=True ),
  253. Column( "library_dataset_dataset_association_id", Integer, ForeignKey( "library_dataset_dataset_association.id", use_alter=True, name="library_dataset_dataset_association_id_fk" ), nullable=True, index=True ),#current version of dataset, if null, there is not a current version selected
  254. Column( "folder_id", Integer, ForeignKey( "library_folder.id" ), index=True ),
  255. Column( "order_id", Integer ), #not currently being used, but for possible future use
  256. Column( "create_time", DateTime, default=now ),
  257. Column( "update_time", DateTime, default=now, onupdate=now ),
  258. Column( "name", TrimmedString( 255 ), key="_name", index=True ), #when not None/null this will supercede display in library (but not when imported into user's history?)
  259. Column( "info", TrimmedString( 255 ), key="_info" ), #when not None/null this will supercede display in library (but not when imported into user's history?)
  260. Column( "deleted", Boolean, index=True, default=False ),
  261. Column( "purged", Boolean, index=True, default=False ) )
  262. model.LibraryDatasetDatasetAssociation.table = Table( "library_dataset_dataset_association", metadata,
  263. Column( "id", Integer, primary_key=True ),
  264. Column( "library_dataset_id", Integer, ForeignKey( "library_dataset.id" ), index=True ),
  265. Column( "dataset_id", Integer, ForeignKey( "dataset.id" ), index=True ),
  266. Column( "create_time", DateTime, default=now ),
  267. Column( "update_time", DateTime, default=now, onupdate=now ),
  268. Column( "state", TrimmedString( 64 ), index=True, key="_state" ),
  269. Column( "copied_from_history_dataset_association_id", Integer, ForeignKey( "history_dataset_association.id", use_alter=True, name='history_dataset_association_dataset_id_fkey' ), nullable=True ),
  270. Column( "copied_from_library_dataset_dataset_association_id", Integer, ForeignKey( "library_dataset_dataset_association.id", use_alter=True, name='library_dataset_dataset_association_id_fkey' ), nullable=True ),
  271. Column( "name", TrimmedString( 255 ), index=True ),
  272. Column( "info", TrimmedString( 255 ) ),
  273. Column( "blurb", TrimmedString( 255 ) ),
  274. Column( "peek" , TEXT ),
  275. Column( "tool_version" , TEXT ),
  276. Column( "extension", TrimmedString( 64 ) ),
  277. Column( "metadata", MetadataType(), key="_metadata" ),
  278. Column( "parent_id", Integer, ForeignKey( "library_dataset_dataset_association.id" ), nullable=True ),
  279. Column( "designation", TrimmedString( 255 ) ),
  280. Column( "deleted", Boolean, index=True, default=False ),
  281. Column( "visible", Boolean ),
  282. Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True ),
  283. Column( "message", TrimmedString( 255 ) ),
  284. Column( "extended_metadata_id", Integer,
  285. ForeignKey( "extended_metadata.id" ), index=True )
  286. )
  287. model.ExtendedMetadata.table = Table("extended_metadata", metadata,
  288. Column( "id", Integer, primary_key=True ),
  289. Column( "data", JSONType ) )
  290. model.ExtendedMetadataIndex.table = Table("extended_metadata_index", metadata,
  291. Column( "id", Integer, primary_key=True ),
  292. Column( "extended_metadata_id", Integer, ForeignKey("extended_metadata.id",
  293. onupdate="CASCADE",
  294. ondelete="CASCADE" ),
  295. index=True ),
  296. Column( "path", String( 255 )),
  297. Column( "value", TEXT))
  298. model.Library.table = Table( "library", metadata,
  299. Column( "id", Integer, primary_key=True ),
  300. Column( "root_folder_id", Integer, ForeignKey( "library_folder.id" ), index=True ),
  301. Column( "create_time", DateTime, default=now ),
  302. Column( "update_time", DateTime, default=now, onupdate=now ),
  303. Column( "name", String( 255 ), index=True ),
  304. Column( "deleted", Boolean, index=True, default=False ),
  305. Column( "purged", Boolean, index=True, default=False ),
  306. Column( "description", TEXT ),
  307. Column( "synopsis", TEXT ) )
  308. model.LibraryFolder.table = Table( "library_folder", metadata,
  309. Column( "id", Integer, primary_key=True ),
  310. Column( "parent_id", Integer, ForeignKey( "library_folder.id" ), nullable = True, index=True ),
  311. Column( "create_time", DateTime, default=now ),
  312. Column( "update_time", DateTime, default=now, onupdate=now ),
  313. Column( "name", TEXT, index=True ),
  314. Column( "description", TEXT ),
  315. Column( "order_id", Integer ), #not currently being used, but for possible future use
  316. Column( "item_count", Integer ),
  317. Column( "deleted", Boolean, index=True, default=False ),
  318. Column( "purged", Boolean, index=True, default=False ),
  319. Column( "genome_build", TrimmedString( 40 ) ) )
  320. model.LibraryInfoAssociation.table = Table( 'library_info_association', metadata,
  321. Column( "id", Integer, primary_key=True ),
  322. Column( "library_id", Integer, ForeignKey( "library.id" ), index=True ),
  323. Column( "form_definition_id", Integer, ForeignKey( "form_definition.id" ), index=True ),
  324. Column( "form_values_id", Integer, ForeignKey( "form_values.id" ), index=True ),
  325. Column( "inheritable", Boolean, index=True, default=False ),
  326. Column( "deleted", Boolean, index=True, default=False ) )
  327. model.LibraryFolderInfoAssociation.table = Table( 'library_folder_info_association', metadata,
  328. Column( "id", Integer, primary_key=True ),
  329. Column( "library_folder_id", Integer, ForeignKey( "library_folder.id" ), nullable=True, index=True ),
  330. Column( "form_definition_id", Integer, ForeignKey( "form_definition.id" ), index=True ),
  331. Column( "form_values_id", Integer, ForeignKey( "form_values.id" ), index=True ),
  332. Column( "inheritable", Boolean, index=True, default=False ),
  333. Column( "deleted", Boolean, index=True, default=False ) )
  334. model.LibraryDatasetDatasetInfoAssociation.table = Table( 'library_dataset_dataset_info_association', metadata,
  335. Column( "id", Integer, primary_key=True ),
  336. Column( "library_dataset_dataset_association_id", Integer, ForeignKey( "library_dataset_dataset_association.id" ), nullable=True, index=True ),
  337. Column( "form_definition_id", Integer, ForeignKey( "form_definition.id" ), index=True ),
  338. Column( "form_values_id", Integer, ForeignKey( "form_values.id" ), index=True ),
  339. Column( "deleted", Boolean, index=True, default=False ) )
  340. model.Job.table = Table( "job", metadata,
  341. Column( "id", Integer, primary_key=True ),
  342. Column( "create_time", DateTime, default=now ),
  343. Column( "update_time", DateTime, default=now, onupdate=now ),
  344. Column( "history_id", Integer, ForeignKey( "history.id" ), index=True ),
  345. Column( "library_folder_id", Integer, ForeignKey( "library_folder.id" ), index=True ),
  346. Column( "tool_id", String( 255 ) ),
  347. Column( "tool_version", TEXT, default="1.0.0" ),
  348. Column( "state", String( 64 ), index=True ),
  349. Column( "info", TrimmedString( 255 ) ),
  350. Column( "command_line", TEXT ),
  351. Column( "param_filename", String( 1024 ) ),
  352. Column( "runner_name", String( 255 ) ),
  353. Column( "stdout", TEXT ),
  354. Column( "stderr", TEXT ),
  355. Column( "exit_code", Integer, nullable=True ),
  356. Column( "traceback", TEXT ),
  357. Column( "session_id", Integer, ForeignKey( "galaxy_session.id" ), index=True, nullable=True ),
  358. Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True, nullable=True ),
  359. Column( "job_runner_name", String( 255 ) ),
  360. Column( "job_runner_external_id", String( 255 ) ),
  361. Column( "destination_id", String( 255 ), nullable=True ),
  362. Column( "destination_params", JSONType, nullable=True ),
  363. Column( "object_store_id", TrimmedString( 255 ), index=True ),
  364. Column( "imported", Boolean, default=False, index=True ),
  365. Column( "params", TrimmedString(255), index=True ),
  366. Column( "handler", TrimmedString( 255 ), index=True ) )
  367. model.JobParameter.table = Table( "job_parameter", metadata,
  368. Column( "id", Integer, primary_key=True ),
  369. Column( "job_id", Integer, ForeignKey( "job.id" ), index=True ),
  370. Column( "name", String(255) ),
  371. Column( "value", TEXT ) )
  372. model.JobToInputDatasetAssociation.table = Table( "job_to_input_dataset", metadata,
  373. Column( "id", Integer, primary_key=True ),
  374. Column( "job_id", Integer, ForeignKey( "job.id" ), index=True ),
  375. Column( "dataset_id", Integer, ForeignKey( "history_dataset_association.id" ), index=True ),
  376. Column( "name", String(255) ) )
  377. model.JobToOutputDatasetAssociation.table = Table( "job_to_output_dataset", metadata,
  378. Column( "id", Integer, primary_key=True ),
  379. Column( "job_id", Integer, ForeignKey( "job.id" ), index=True ),
  380. Column( "dataset_id", Integer, ForeignKey( "history_dataset_association.id" ), index=True ),
  381. Column( "name", String(255) ) )
  382. model.JobToInputLibraryDatasetAssociation.table = Table( "job_to_input_library_dataset", metadata,
  383. Column( "id", Integer, primary_key=True ),
  384. Column( "job_id", Integer, ForeignKey( "job.id" ), index=True ),
  385. Column( "ldda_id", Integer, ForeignKey( "library_dataset_dataset_association.id" ), index=True ),
  386. Column( "name", String(255) ) )
  387. model.JobToOutputLibraryDatasetAssociation.table = Table( "job_to_output_library_dataset", metadata,
  388. Column( "id", Integer, primary_key=True ),
  389. Column( "job_id", Integer, ForeignKey( "job.id" ), index=True ),
  390. Column( "ldda_id", Integer, ForeignKey( "library_dataset_dataset_association.id" ), index=True ),
  391. Column( "name", String(255) ) )
  392. model.JobExternalOutputMetadata.table = Table( "job_external_output_metadata", metadata,
  393. Column( "id", Integer, primary_key=True ),
  394. Column( "job_id", Integer, ForeignKey( "job.id" ), index=True ),
  395. Column( "history_dataset_association_id", Integer, ForeignKey( "history_dataset_association.id" ), index=True, nullable=True ),
  396. Column( "library_dataset_dataset_association_id", Integer, ForeignKey( "library_dataset_dataset_association.id" ), index=True, nullable=True ),
  397. Column( "filename_in", String( 255 ) ),
  398. Column( "filename_out", String( 255 ) ),
  399. Column( "filename_results_code", String( 255 ) ),
  400. Column( "filename_kwds", String( 255 ) ),
  401. Column( "filename_override_metadata", String( 255 ) ),
  402. Column( "job_runner_external_pid", String( 255 ) ) )
  403. model.JobExportHistoryArchive.table = Table( "job_export_history_archive", metadata,
  404. Column( "id", Integer, primary_key=True ),
  405. Column( "job_id", Integer, ForeignKey( "job.id" ), index=True ),
  406. Column( "history_id", Integer, ForeignKey( "history.id" ), index=True ),
  407. Column( "dataset_id", Integer, ForeignKey( "dataset.id" ), index=True ),
  408. Column( "compressed", Boolean, index=True, default=False ),
  409. Column( "history_attrs_filename", TEXT ),
  410. Column( "datasets_attrs_filename", TEXT ),
  411. Column( "jobs_attrs_filename", TEXT )
  412. )
  413. model.JobImportHistoryArchive.table = Table( "job_import_history_archive", metadata,
  414. Column( "id", Integer, primary_key=True ),
  415. Column( "job_id", Integer, ForeignKey( "job.id" ), index=True ),
  416. Column( "history_id", Integer, ForeignKey( "history.id" ), index=True ),
  417. Column( "archive_dir", TEXT )
  418. )
  419. model.GenomeIndexToolData.table = Table( "genome_index_tool_data", metadata,
  420. Column( "id", Integer, primary_key=True ),
  421. Column( "job_id", Integer, ForeignKey( "job.id" ), index=True ),
  422. Column( "deferred_job_id", Integer, ForeignKey( "deferred_job.id" ), index=True ),
  423. Column( "transfer_job_id", Integer, ForeignKey( "transfer_job.id" ), index=True ),
  424. Column( "dataset_id", Integer, ForeignKey( "dataset.id" ), index=True ),
  425. Column( "fasta_path", String( 255 ) ),
  426. Column( "created_time", DateTime, default=now ),
  427. Column( "modified_time", DateTime, default=now, onupdate=now ),
  428. Column( "indexer", String( 64 ) ),
  429. Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True ),
  430. )
  431. model.Task.table = Table( "task", metadata,
  432. Column( "id", Integer, primary_key=True ),
  433. Column( "create_time", DateTime, default=now ),
  434. Column( "execution_time", DateTime ),
  435. Column( "update_time", DateTime, default=now, onupdate=now ),
  436. Column( "state", String( 64 ), index=True ),
  437. Column( "command_line", TEXT ),
  438. Column( "param_filename", String( 1024 ) ),
  439. Column( "runner_name", String( 255 ) ),
  440. Column( "stdout", TEXT ),
  441. Column( "stderr", TEXT ),
  442. Column( "exit_code", Integer, nullable=True ),
  443. Column( "info", TrimmedString ( 255 ) ),
  444. Column( "traceback", TEXT ),
  445. Column( "job_id", Integer, ForeignKey( "job.id" ), index=True, nullable=False ),
  446. Column( "working_directory", String(1024)),
  447. Column( "task_runner_name", String( 255 ) ),
  448. Column( "task_runner_external_id", String( 255 ) ),
  449. Column( "prepare_input_files_cmd", TEXT ) )
  450. model.PostJobAction.table = Table("post_job_action", metadata,
  451. Column("id", Integer, primary_key=True),
  452. Column("workflow_step_id", Integer, ForeignKey( "workflow_step.id" ), index=True, nullable=False),
  453. Column("action_type", String(255), nullable=False),
  454. Column("output_name", String(255), nullable=True),
  455. Column("action_arguments", JSONType, nullable=True))
  456. model.PostJobActionAssociation.table = Table("post_job_action_association", metadata,
  457. Column("id", Integer, primary_key=True),
  458. Column("job_id", Integer, ForeignKey( "job.id" ), index=True, nullable=False),
  459. Column("post_job_action_id", Integer, ForeignKey( "post_job_action.id" ), index=True, nullable=False))
  460. model.DeferredJob.table = Table( "deferred_job", metadata,
  461. Column( "id", Integer, primary_key=True ),
  462. Column( "create_time", DateTime, default=now ),
  463. Column( "update_time", DateTime, default=now, onupdate=now ),
  464. Column( "state", String( 64 ), index=True ),
  465. Column( "plugin", String( 128 ), index=True ),
  466. Column( "params", JSONType ) )
  467. model.TransferJob.table = Table( "transfer_job", metadata,
  468. Column( "id", Integer, primary_key=True ),
  469. Column( "create_time", DateTime, default=now ),
  470. Column( "update_time", DateTime, default=now, onupdate=now ),
  471. Column( "state", String( 64 ), index=True ),
  472. Column( "path", String( 1024 ) ),
  473. Column( "info", TEXT ),
  474. Column( "pid", Integer ),
  475. Column( "socket", Integer ),
  476. Column( "params", JSONType ) )
  477. model.Event.table = Table( "event", metadata,
  478. Column( "id", Integer, primary_key=True ),
  479. Column( "create_time", DateTime, default=now ),
  480. Column( "update_time", DateTime, default=now, onupdate=now ),
  481. Column( "history_id", Integer, ForeignKey( "history.id" ), index=True, nullable=True ),
  482. Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True, nullable=True ),
  483. Column( "message", TrimmedString( 1024 ) ),
  484. Column( "session_id", Integer, ForeignKey( "galaxy_session.id" ), index=True, nullable=True ),
  485. Column( "tool_id", String( 255 ) ) )
  486. model.GalaxySession.table = Table( "galaxy_session", metadata,
  487. Column( "id", Integer, primary_key=True ),
  488. Column( "create_time", DateTime, default=now ),
  489. Column( "update_time", DateTime, default=now, onupdate=now ),
  490. Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True, nullable=True ),
  491. Column( "remote_host", String( 255 ) ),
  492. Column( "remote_addr", String( 255 ) ),
  493. Column( "referer", TEXT ),
  494. Column( "current_history_id", Integer, ForeignKey( "history.id" ), nullable=True ),
  495. Column( "session_key", TrimmedString( 255 ), index=True, unique=True ), # unique 128 bit random number coerced to a string
  496. Column( "is_valid", Boolean, default=False ),
  497. Column( "prev_session_id", Integer ), # saves a reference to the previous session so we have a way to chain them together
  498. Column( "disk_usage", Numeric( 15, 0 ), index=True ) )
  499. model.GalaxySessionToHistoryAssociation.table = Table( "galaxy_session_to_history", metadata,
  500. Column( "id", Integer, primary_key=True ),
  501. Column( "create_time", DateTime, default=now ),
  502. Column( "session_id", Integer, ForeignKey( "galaxy_session.id" ), index=True ),
  503. Column( "history_id", Integer, ForeignKey( "history.id" ), index=True ) )
  504. model.StoredWorkflow.table = Table( "stored_workflow", metadata,
  505. Column( "id", Integer, primary_key=True ),
  506. Column( "create_time", DateTime, default=now ),
  507. Column( "update_time", DateTime, default=now, onupdate=now ),
  508. Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True, nullable=False ),
  509. Column( "latest_workflow_id", Integer,
  510. ForeignKey( "workflow.id", use_alter=True, name='stored_workflow_latest_workflow_id_fk' ), index=True ),
  511. Column( "name", TEXT ),
  512. Column( "deleted", Boolean, default=False ),
  513. Column( "importable", Boolean, default=False ),
  514. Column( "slug", TEXT, index=True ),
  515. Column( "published", Boolean, index=True, default=False )
  516. )
  517. model.Workflow.table = Table( "workflow", metadata,
  518. Column( "id", Integer, primary_key=True ),
  519. Column( "create_time", DateTime, default=now ),
  520. Column( "update_time", DateTime, default=now, onupdate=now ),
  521. Column( "stored_workflow_id", Integer, ForeignKey( "stored_workflow.id" ), index=True, nullable=False ),
  522. Column( "name", TEXT ),
  523. Column( "has_cycles", Boolean ),
  524. Column( "has_errors", Boolean )
  525. )
  526. model.WorkflowStep.table = Table( "workflow_step", metadata,
  527. Column( "id", Integer, primary_key=True ),
  528. Column( "create_time", DateTime, default=now ),
  529. Column( "update_time", DateTime, default=now, onupdate=now ),
  530. Column( "workflow_id", Integer, ForeignKey( "workflow.id" ), index=True, nullable=False ),
  531. Column( "type", String(64) ),
  532. Column( "tool_id", TEXT ),
  533. Column( "tool_version", TEXT ), # Reserved for future
  534. Column( "tool_inputs", JSONType ),
  535. Column( "tool_errors", JSONType ),
  536. Column( "position", JSONType ),
  537. Column( "config", JSONType ),
  538. Column( "order_index", Integer ),
  539. ## Column( "input_connections", JSONType )
  540. )
  541. model.WorkflowStepConnection.table = Table( "workflow_step_connection", metadata,
  542. Column( "id", Integer, primary_key=True ),
  543. Column( "output_step_id", Integer, ForeignKey( "workflow_step.id" ), index=True ),
  544. Column( "input_step_id", Integer, ForeignKey( "workflow_step.id" ), index=True ),
  545. Column( "output_name", TEXT ),
  546. Column( "input_name", TEXT)
  547. )
  548. model.WorkflowOutput.table = Table( "workflow_output", metadata,
  549. Column( "id", Integer, primary_key=True ),
  550. Column( "workflow_step_id", Integer, ForeignKey("workflow_step.id"), index=True, nullable=False),
  551. Column( "output_name", String(255), nullable=True)
  552. )
  553. model.WorkflowInvocation.table = Table( "workflow_invocation", metadata,
  554. Column( "id", Integer, primary_key=True ),
  555. Column( "create_time", DateTime, default=now ),
  556. Column( "update_time", DateTime, default=now, onupdate=now ),
  557. Column( "workflow_id", Integer, ForeignKey( "workflow.id" ), index=True, nullable=False )
  558. )
  559. model.WorkflowInvocationStep.table = Table( "workflow_invocation_step", metadata,
  560. Column( "id", Integer, primary_key=True ),
  561. Column( "create_time", DateTime, default=now ),
  562. Column( "update_time", DateTime, default=now, onupdate=now ),
  563. Column( "workflow_invocation_id", Integer, ForeignKey( "workflow_invocation.id" ), index=True, nullable=False ),
  564. Column( "workflow_step_id", Integer, ForeignKey( "workflow_step.id" ), index=True, nullable=False ),
  565. Column( "job_id", Integer, ForeignKey( "job.id" ), index=True, nullable=True )
  566. )
  567. model.StoredWorkflowUserShareAssociation.table = Table( "stored_workflow_user_share_connection", metadata,
  568. Column( "id", Integer, primary_key=True ),
  569. Column( "stored_workflow_id", Integer, ForeignKey( "stored_workflow.id" ), index=True ),
  570. Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True )
  571. )
  572. model.StoredWorkflowMenuEntry.table = Table( "stored_workflow_menu_entry", metadata,
  573. Column( "id", Integer, primary_key=True ),
  574. Column( "stored_workflow_id", Integer, ForeignKey( "stored_workflow.id" ), index=True ),
  575. Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True ),
  576. Column( "order_index", Integer ) )
  577. model.MetadataFile.table = Table( "metadata_file", metadata,
  578. Column( "id", Integer, primary_key=True ),
  579. Column( "name", TEXT ),
  580. Column( "hda_id", Integer, ForeignKey( "history_dataset_association.id" ), index=True, nullable=True ),
  581. Column( "lda_id", Integer, ForeignKey( "library_dataset_dataset_association.id" ), index=True, nullable=True ),
  582. Column( "create_time", DateTime, default=now ),
  583. Column( "update_time", DateTime, index=True, default=now, onupdate=now ),
  584. Column( "object_store_id", TrimmedString( 255 ), index=True ),
  585. Column( "deleted", Boolean, index=True, default=False ),
  586. Column( "purged", Boolean, index=True, default=False ) )
  587. model.FormDefinitionCurrent.table = Table('form_definition_current', metadata,
  588. Column( "id", Integer, primary_key=True),
  589. Column( "create_time", DateTime, default=now ),
  590. Column( "update_time", DateTime, default=now, onupdate=now ),
  591. Column( "latest_form_id", Integer, ForeignKey( "form_definition.id" ), index=True ),
  592. Column( "deleted", Boolean, index=True, default=False ))
  593. model.FormDefinition.table = Table('form_definition', metadata,
  594. Column( "id", Integer, primary_key=True),
  595. Column( "create_time", DateTime, default=now ),
  596. Column( "update_time", DateTime, default=now, onupdate=now ),
  597. Column( "name", TrimmedString( 255 ), nullable=False ),
  598. Column( "desc", TEXT ),
  599. Column( "form_definition_current_id",
  600. Integer,
  601. ForeignKey( "form_definition_current.id", name='for_def_form_def_current_id_fk', use_alter=True ),
  602. index=True ),
  603. Column( "fields", JSONType() ),
  604. Column( "type", TrimmedString( 255 ), index=True ),
  605. Column( "layout", JSONType() ), )
  606. model.ExternalService.table = Table( 'external_service', metadata,
  607. Column( "id", Integer, primary_key=True ),
  608. Column( "create_time", DateTime, default=now ),
  609. Column( "update_time", DateTime, default=now, onupdate=now ),
  610. Column( "name", TrimmedString( 255 ), nullable=False ),
  611. Column( "description", TEXT ),
  612. Column( "external_service_type_id", TrimmedString( 255 ), nullable=False ),
  613. Column( "version", TrimmedString( 255 ) ),
  614. Column( "form_definition_id", Integer, ForeignKey( "form_definition.id" ), index=True ),
  615. Column( "form_values_id", Integer, ForeignKey( "form_values.id" ), index=True ),
  616. Column( "deleted", Boolean, index=True, default=False ) )
  617. model.RequestType.table = Table('request_type', metadata,
  618. Column( "id", Integer, primary_key=True),
  619. Column( "create_time", DateTime, default=now ),
  620. Column( "update_time", DateTime, default=now, onupdate=now ),
  621. Column( "name", TrimmedString( 255 ), nullable=False ),
  622. Column( "desc", TEXT ),
  623. Column( "request_form_id", Integer, ForeignKey( "form_definition.id" ), index=True ),
  624. Column( "sample_form_id", Integer, ForeignKey( "form_definition.id" ), index=True ),
  625. Column( "deleted", Boolean, index=True, default=False ) )
  626. model.RequestTypeExternalServiceAssociation.table = Table( "request_type_external_service_association", metadata,
  627. Column( "id", Integer, primary_key=True ),
  628. Column( "request_type_id", Integer, ForeignKey( "request_type.id" ), index=True ),
  629. Column( "external_service_id", Integer, ForeignKey( "external_service.id" ), index=True ) )
  630. model.RequestTypePermissions.table = Table( "request_type_permissions", metadata,
  631. Column( "id", Integer, primary_key=True ),
  632. Column( "create_time", DateTime, default=now ),
  633. Column( "update_time", DateTime, default=now, onupdate=now ),
  634. Column( "action", TEXT ),
  635. Column( "request_type_id", Integer, ForeignKey( "request_type.id" ), nullable=True, index=True ),
  636. Column( "role_id", Integer, ForeignKey( "role.id" ), index=True ) )
  637. model.FormValues.table = Table('form_values', metadata,
  638. Column( "id", Integer, primary_key=True),
  639. Column( "create_time", DateTime, default=now ),
  640. Column( "update_time", DateTime, default=now, onupdate=now ),
  641. Column( "form_definition_id", Integer, ForeignKey( "form_definition.id" ), index=True ),
  642. Column( "content", JSONType()) )
  643. model.Request.table = Table('request', metadata,
  644. Column( "id", Integer, primary_key=True),
  645. Column( "create_time", DateTime, default=now ),
  646. Column( "update_time", DateTime, default=now, onupdate=now ),
  647. Column( "name", TrimmedString( 255 ), nullable=False ),
  648. Column( "desc", TEXT ),
  649. Column( "notification", JSONType() ),
  650. Column( "form_values_id", Integer, ForeignKey( "form_values.id" ), index=True ),
  651. Column( "request_type_id", Integer, ForeignKey( "request_type.id" ), index=True ),
  652. Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True ),
  653. Column( "deleted", Boolean, index=True, default=False ) )
  654. model.RequestEvent.table = Table('request_event', metadata,
  655. Column( "id", Integer, primary_key=True),
  656. Column( "create_time", DateTime, default=now ),
  657. Column( "update_time", DateTime, default=now, onupdate=now ),
  658. Column( "request_id", Integer, ForeignKey( "request.id" ), index=True ),
  659. Column( "state", TrimmedString( 255 ), index=True ),
  660. Column( "comment", TEXT ) )
  661. model.Sample.table = Table('sample', metadata,
  662. Column( "id", Integer, primary_key=True ),
  663. Column( "create_time", DateTime, default=now ),
  664. Column( "update_time", DateTime, default=now, onupdate=now ),
  665. Column( "name", TrimmedString( 255 ), nullable=False ),
  666. Column( "desc", TEXT ),
  667. Column( "form_values_id", Integer, ForeignKey( "form_values.id" ), index=True ),
  668. Column( "request_id", Integer, ForeignKey( "request.id" ), index=True ),
  669. Column( "bar_code", TrimmedString( 255 ), index=True ),
  670. Column( "library_id", Integer, ForeignKey( "library.id" ), index=True ),
  671. Column( "folder_id", Integer, ForeignKey( "library_folder.id" ), index=True ),
  672. Column( "deleted", Boolean, index=True, default=False ),
  673. Column( "workflow", JSONType, nullable=True ),
  674. Column( "history_id", Integer, ForeignKey( "history.id" ), nullable=True) )
  675. model.SampleState.table = Table('sample_state', metadata,
  676. Column( "id", Integer, primary_key=True ),
  677. Column( "create_time", DateTime, default=now ),
  678. Column( "update_time", DateTime, default=now, onupdate=now ),
  679. Column( "name", TrimmedString( 255 ), nullable=False ),
  680. Column( "desc", TEXT ),
  681. Column( "request_type_id", Integer, ForeignKey( "request_type.id" ), index=True ) )
  682. model.SampleEvent.table = Table('sample_event', metadata,
  683. Column( "id", Integer, primary_key=True ),
  684. Column( "create_time", DateTime, default=now ),
  685. Column( "update_time", DateTime, default=now, onupdate=now ),
  686. Column( "sample_id", Integer, ForeignKey( "sample.id" ), index=True ),
  687. Column( "sample_state_id", Integer, ForeignKey( "sample_state.id" ), index=True ),
  688. Column( "comment", TEXT ) )
  689. model.SampleDataset.table = Table('sample_dataset', metadata,
  690. Column( "id", Integer, primary_key=True ),
  691. Column( "create_time", DateTime, default=now ),
  692. Column( "update_time", DateTime, default=now, onupdate=now ),
  693. Column( "sample_id", Integer, ForeignKey( "sample.id" ), index=True ),
  694. Column( "name", TrimmedString( 255 ), nullable=False ),
  695. Column( "file_path", TEXT ),
  696. Column( "status", TrimmedString( 255 ), nullable=False ),
  697. Column( "error_msg", TEXT ),
  698. Column( "size", TrimmedString( 255 ) ),
  699. Column( "external_service_id", Integer, ForeignKey( "external_service.id" ), index=True ) )
  700. model.Run.table = Table( 'run', metadata,
  701. Column( "id", Integer, primary_key=True ),
  702. Column( "create_time", DateTime, default=now ),
  703. Column( "update_time", DateTime, default=now, onupdate=now ),
  704. Column( "form_definition_id", Integer, ForeignKey( "form_definition.id" ), index=True ),
  705. Column( "form_values_id", Integer, ForeignKey( "form_values.id" ), index=True ),
  706. Column( "deleted", Boolean, index=True, default=False ),
  707. Column( "subindex", TrimmedString( 255 ), index=True ) )
  708. model.RequestTypeRunAssociation.table = Table( "request_type_run_association", metadata,
  709. Column( "id", Integer, primary_key=True ),
  710. Column( "request_type_id", Integer, ForeignKey( "request_type.id" ), index=True, nullable=False ),
  711. Column( "run_id", Integer, ForeignKey( "run.id" ), index=True, nullable=False ) )
  712. model.SampleRunAssociation.table = Table( "sample_run_association", metadata,
  713. Column( "id", Integer, primary_key=True ),
  714. Column( "sample_id", Integer, ForeignKey( "sample.id" ), index=True, nullable=False ),
  715. Column( "run_id", Integer, ForeignKey( "run.id" ), index=True, nullable=False ) )
  716. model.Page.table = Table( "page", metadata,
  717. Column( "id", Integer, primary_key=True ),
  718. Column( "create_time", DateTime, default=now ),
  719. Column( "update_time", DateTime, default=now, onupdate=now ),
  720. Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True, nullable=False ),
  721. Column( "latest_revision_id", Integer,
  722. ForeignKey( "page_revision.id", use_alter=True, name='page_latest_revision_id_fk' ), index=True ),
  723. Column( "title", TEXT ),
  724. Column( "slug", TEXT, unique=True, index=True ),
  725. Column( "importable", Boolean, index=True, default=False ),
  726. Column( "published", Boolean, index=True, default=False ),
  727. Column( "deleted", Boolean, index=True, default=False ),
  728. )
  729. model.PageRevision.table = Table( "page_revision", metadata,
  730. Column( "id", Integer, primary_key=True ),
  731. Column( "create_time", DateTime, default=now ),
  732. Column( "update_time", DateTime, default=now, onupdate=now ),
  733. Column( "page_id", Integer, ForeignKey( "page.id" ), index=True, nullable=False ),
  734. Column( "title", TEXT ),
  735. Column( "content", TEXT )
  736. )
  737. model.PageUserShareAssociation.table = Table( "page_user_share_association", metadata,
  738. Column( "id", Integer, primary_key=True ),
  739. Column( "page_id", Integer, ForeignKey( "page.id" ), index=True ),
  740. Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True )
  741. )
  742. model.Visualization.table = Table( "visualization", metadata,
  743. Column( "id", Integer, primary_key=True ),
  744. Column( "create_time", DateTime, default=now ),
  745. Column( "update_time", DateTime, default=now, onupdate=now ),
  746. Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True, nullable=False ),
  747. Column( "latest_revision_id", Integer,
  748. ForeignKey( "visualization_revision.id", use_alter=True, name='visualization_latest_revision_id_fk' ), index=True ),
  749. Column( "title", TEXT ),
  750. Column( "type", TEXT ),
  751. Column( "dbkey", TEXT, index=True ),
  752. Column( "deleted", Boolean, default=False, index=True ),
  753. Column( "importable", Boolean, default=False, index=True ),
  754. Column( "slug", TEXT, index=True ),
  755. Column( "published", Boolean, default=False, index=True )
  756. )
  757. model.VisualizationRevision.table = Table( "visualization_revision", metadata,
  758. Column( "id", Integer, primary_key=True ),
  759. Column( "create_time", DateTime, default=now ),
  760. Column( "update_time", DateTime, default=now, onupdate=now ),
  761. Column( "visualization_id", Integer, ForeignKey( "visualization.id" ), index=True, nullable=False ),
  762. Column( "title", TEXT ),
  763. Column( "dbkey", TEXT, index=True ),
  764. Column( "config", JSONType )
  765. )
  766. model.VisualizationUserShareAssociation.table = Table( "visualization_user_share_association", metadata,
  767. Column( "id", Integer, primary_key=True ),
  768. Column( "visualization_id", Integer, ForeignKey( "visualization.id" ), index=True ),
  769. Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True )
  770. )
  771. #Data Manager tables
  772. model.DataManagerHistoryAssociation.table = Table( "data_manager_history_association", metadata,
  773. Column( "id", Integer, primary_key=True),
  774. Column( "create_time", DateTime, default=now ),
  775. Column( "update_time", DateTime, index=True, default=now, onupdate=now ),
  776. Column( "history_id", Integer, ForeignKey( "history.id" ), index=True ),
  777. Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True )
  778. )
  779. model.DataManagerJobAssociation.table = Table( "data_manager_job_association", metadata,
  780. Column( "id", Integer, primary_key=True),
  781. Column( "create_time", DateTime, default=now ),
  782. Column( "update_time", DateTime, index=True, default=now, onupdate=now ),
  783. Column( "job_id", Integer, ForeignKey( "job.id" ), index=True ),
  784. Column( "data_manager_id", TEXT, index=True )
  785. )
  786. # Tagging tables.
  787. model.Tag.table = Table( "tag", metadata,
  788. Column( "id", Integer, primary_key=True ),
  789. Column( "type", Integer ),
  790. Column( "parent_id", Integer, ForeignKey( "tag.id" ) ),
  791. Column( "name", TrimmedString(255) ),
  792. UniqueConstraint( "name" ) )
  793. model.HistoryTagAssociation.table = Table( "history_tag_association", metadata,
  794. Column( "id", Integer, primary_key=True ),
  795. Column( "history_id", Integer, ForeignKey( "history.id" ), index=True ),
  796. Column( "tag_id", Integer, ForeignKey( "tag.id" ), index=True ),
  797. Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True ),
  798. Column( "user_tname", TrimmedString(255), index=True),
  799. Column( "value", TrimmedString(255), index=True),
  800. Column( "user_value", TrimmedString(255), index=True) )
  801. model.DatasetTagAssociation.table = Table( "dataset_tag_association", metadata,
  802. Column( "id", Integer, primary_key=True ),
  803. Column( "dataset_id", Integer, ForeignKey( "dataset.id" ), index=True ),
  804. Column( "tag_id", Integer, ForeignKey( "tag.id" ), index=True ),
  805. Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True ),
  806. Column( "user_tname", TrimmedString(255), index=True),
  807. Column( "value", TrimmedString(255), index=True),
  808. Column( "user_value", TrimmedString(255), index=True) )
  809. model.HistoryDatasetAssociationTagAssociation.table = Table( "history_dataset_association_tag_association", metadata,
  810. Column( "id", Integer, primary_key=True ),
  811. Column( "history_dataset_association_id", Integer, ForeignKey( "history_dataset_association.id" ), index=True ),
  812. Column( "tag_id", Integer, ForeignKey( "tag.id" ), index=True ),
  813. Column( "user_id", Integer, ForeignKey( "galaxy_user.id" ), index=True ),
  814. Column( "user_tname", TrimmedString(255), index=True),
  815. Column( "value", TrimmedString(255), index=True),
  816. Column( "user_value", TrimmedString(255), index=True) )