A semantic search engine for source code https://bitshift.benkurtovic.com/
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 
 
 
 

148 wiersze
5.1 KiB

  1. """
  2. Contains information about database schema versions, and SQL queries to update
  3. between them.
  4. """
  5. VERSION = 12
  6. MIGRATIONS = [
  7. # 1 -> 2
  8. [
  9. """ALTER TABLE `codelets`
  10. DROP FOREIGN KEY `codelets_ibfk_1`""",
  11. """ALTER TABLE `code`
  12. DROP KEY `code_hash`,
  13. DROP COLUMN `code_hash`,
  14. MODIFY COLUMN `code_id` BIGINT NOT NULL""",
  15. """ALTER TABLE `codelets`
  16. MODIFY COLUMN `codelet_code_id` BIGINT NOT NULL,
  17. ADD KEY (`codelet_lang`),
  18. ADD CONSTRAINT `codelets_ibfk_1` FOREIGN KEY (`codelet_code_id`)
  19. REFERENCES `code` (`code_id`)
  20. ON DELETE RESTRICT ON UPDATE CASCADE""",
  21. """ALTER TABLE `symbols`
  22. ADD COLUMN `symbol_end_row` INT UNSIGNED NOT NULL,
  23. ADD COLUMN `symbol_end_col` INT UNSIGNED NOT NULL"""
  24. ],
  25. # 2 -> 3
  26. [
  27. """ALTER TABLE `symbols`
  28. DROP FOREIGN KEY `symbols_ibfk_1`,
  29. CHANGE COLUMN `symbol_codelet` `symbol_code` BIGINT NOT NULL,
  30. ADD CONSTRAINT `symbols_ibfk_1` FOREIGN KEY (`symbol_code`)
  31. REFERENCES `code` (`code_id`)
  32. ON DELETE CASCADE ON UPDATE CASCADE"""
  33. ],
  34. # 3 -> 4
  35. [
  36. """ALTER TABLE `symbols`
  37. DROP COLUMN `symbol_row`,
  38. DROP COLUMN `symbol_col`,
  39. DROP COLUMN `symbol_end_row`,
  40. DROP COLUMN `symbol_end_col`""",
  41. """CREATE TABLE `symbol_locations` (
  42. `sloc_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  43. `sloc_symbol` BIGINT UNSIGNED NOT NULL,
  44. `sloc_type` TINYINT UNSIGNED NOT NULL,
  45. `sloc_row` INT UNSIGNED NOT NULL,
  46. `sloc_col` INT UNSIGNED NOT NULL,
  47. `sloc_end_row` INT UNSIGNED NOT NULL,
  48. `sloc_end_col` INT UNSIGNED NOT NULL,
  49. PRIMARY KEY (`sloc_id`),
  50. FOREIGN KEY (`sloc_symbol`)
  51. REFERENCES `symbols` (`symbol_id`)
  52. ON DELETE CASCADE ON UPDATE CASCADE
  53. ) ENGINE=InnoDB"""
  54. ],
  55. # 4 -> 5
  56. [
  57. """ALTER TABLE `origins`
  58. MODIFY COLUMN `origin_name` VARCHAR(64) DEFAULT NULL,
  59. MODIFY COLUMN `origin_url` VARCHAR(512) DEFAULT NULL,
  60. MODIFY COLUMN `origin_url_base` VARCHAR(512) DEFAULT NULL"""
  61. ],
  62. # 5 -> 6
  63. [
  64. """ALTER TABLE `code`
  65. ADD COLUMN `code_lang` SMALLINT UNSIGNED DEFAULT NULL
  66. AFTER `code_id`,
  67. ADD KEY (`code_lang`)""",
  68. """ALTER TABLE `codelets`
  69. DROP KEY `codelet_lang`,
  70. DROP COLUMN `codelet_lang`""",
  71. """ALTER TABLE `cache_data`
  72. DROP FOREIGN KEY `cache_data_ibfk_1`""",
  73. """ALTER TABLE `cache`
  74. MODIFY COLUMN `cache_id` BIGINT NOT NULL,
  75. DROP COLUMN `cache_hash`,
  76. DROP COLUMN `cache_last_used`,
  77. MODIFY COLUMN `cache_count_mnt` SMALLINT UNSIGNED NOT NULL""",
  78. """ALTER TABLE `cache_data`
  79. MODIFY COLUMN `cdata_cache` BIGINT NOT NULL,
  80. ADD PRIMARY KEY (`cdata_cache`, `cdata_codelet`),
  81. ADD CONSTRAINT `cache_data_ibfk_1` FOREIGN KEY (`cdata_codelet`)
  82. REFERENCES `codelets` (`codelet_id`)
  83. ON DELETE CASCADE ON UPDATE CASCADE""",
  84. """CREATE EVENT `flush_cache`
  85. ON SCHEDULE EVERY 1 HOUR
  86. DO
  87. DELETE FROM `cache`
  88. WHERE `cache_created` < DATE_SUB(NOW(), INTERVAL 1 DAY);"""
  89. ],
  90. # 6 -> 7
  91. [
  92. """DELETE FROM `cache`""",
  93. """ALTER TABLE `cache_data`
  94. ADD COLUMN `cdata_index` TINYINT UNSIGNED NOT NULL
  95. AFTER `cdata_codelet`"""
  96. ],
  97. # 7 -> 8
  98. [
  99. """ALTER TABLE `origins`
  100. DROP COLUMN `origin_image`"""
  101. ],
  102. # 8 -> 9
  103. [
  104. """DELIMITER //
  105. CREATE PROCEDURE `empty_database`()
  106. BEGIN
  107. DELETE FROM `codelets`;
  108. DELETE FROM `code`;
  109. DELETE FROM `cache`;
  110. ALTER TABLE `codelets` AUTO_INCREMENT = 1;
  111. ALTER TABLE `authors` AUTO_INCREMENT = 1;
  112. ALTER TABLE `symbols` AUTO_INCREMENT = 1;
  113. ALTER TABLE `symbol_locations` AUTO_INCREMENT = 1;
  114. END//
  115. DELIMITER ;"""
  116. ],
  117. # 9 -> 10
  118. [
  119. """ALTER TABLE `symbol_locations`
  120. MODIFY COLUMN `sloc_col` INT UNSIGNED DEFAULT NULL,
  121. MODIFY COLUMN `sloc_end_row` INT UNSIGNED DEFAULT NULL,
  122. MODIFY COLUMN `sloc_end_col` INT UNSIGNED DEFAULT NULL"""
  123. ],
  124. # 10 -> 11
  125. [
  126. """ALTER DATABASE `bitshift`
  127. CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci"""
  128. ],
  129. # 11 -> 12
  130. [
  131. """CREATE TABLE `stopwords` (
  132. `value` varchar(18) NOT NULL DEFAULT ""
  133. ) ENGINE=InnoDB DEFAULT CHARSET=utf8""",
  134. """INSERT INTO `stopwords` VALUES
  135. ("a"), ("about"), ("an"), ("are"), ("as"), ("at"), ("be"), ("by"),
  136. ("how"), ("i"), ("it"), ("la"), ("of"), ("on"), ("that"), ("the"),
  137. ("to"), ("und"), ("was"), ("what"), ("when"), ("where"), ("who"),
  138. ("will")"""
  139. ]
  140. ]
  141. if __name__ == "__main__":
  142. from . import Database
  143. Database(migrate=True).close()