diff --git a/README.org b/README.org index 38c9746ad..148ec71da 100644 --- a/README.org +++ b/README.org @@ -268,6 +268,72 @@ Then visit [[http://localhost:8000/browse][localhost:8000/browse]] bb restore --file #+end_src +* Development + +** Polylith CLI + +The Polylith CLI is available via the =:poly= alias. Run it with: + +#+begin_src sh +clojure -M:poly +#+end_src + +Common commands: + +#+begin_src sh +# Show workspace overview +clojure -M:poly info + +# Show which bricks have changed since last stable point +clojure -M:poly diff + +# Check for dependency issues and circular references +clojure -M:poly check + +# List all libraries and their versions +clojure -M:poly libs + +# Show dependencies between bricks +clojure -M:poly deps +#+end_src + +See the [[https://cljdoc.org/d/polylith/clj-poly/CURRENT/doc/commands][Polylith documentation]] for the full list of commands. + +** Testing + +*** Run all tests + +#+begin_src sh +bb test +#+end_src + +This runs =cognitect.test-runner= with the =:dev:test= aliases, which includes +test paths for all components and bases. + +*** Run tests for a single component + +#+begin_src sh +bb test-component schema_migrate +#+end_src + +*** Run tests directly with Clojure CLI + +#+begin_src sh +# All tests +clojure -M:dev:test -m cognitect.test-runner + +# Specific test directory +clojure -M:dev:test -m cognitect.test-runner -d components/schema_migrate/test +#+end_src + +** Migrations + +Migrations live in =development/migrations/=. See the [[file:development/migrations/README.org][Migrations README]] for +details on how to create and run migrations. + +Migrations are automatically applied at startup. Old migrations are marked with +=^{:migrate/ignore? true}= on their namespace and are skipped by the runner. + * Behave-Lib The "behave-lib" directory includes the build process for generating a WASM file using c++ code from diff --git a/components/schema_migrate/src/schema_migrate/interface.clj b/components/schema_migrate/src/schema_migrate/interface.clj index 08f5120e3..161eda2ff 100644 --- a/components/schema_migrate/src/schema_migrate/interface.clj +++ b/components/schema_migrate/src/schema_migrate/interface.clj @@ -1,5 +1,6 @@ (ns schema-migrate.interface - (:require [schema-migrate.core :as c])) + (:require [schema-migrate.core :as c] + [schema-migrate.runner :as r])) (def ^{:arglists '([conn attr nname]) :doc "Get the :bp/uuid using the name for the specified name attribute"} @@ -141,3 +142,9 @@ (def ^{:arglists '([s]) :doc "add behaveplus: to `s`"} bp c/bp) + +(def ^{:arglists '([conn dir]) + :doc "Run all pending migrations found in `dir`. Skips namespaces + with `^{:migrate/ignore? true}` metadata and migrations + already recorded via `:bp/migration-id`. Halts on failure."} + run-pending-migrations! r/run-pending-migrations!) diff --git a/components/schema_migrate/src/schema_migrate/runner.clj b/components/schema_migrate/src/schema_migrate/runner.clj new file mode 100644 index 000000000..70a1f6185 --- /dev/null +++ b/components/schema_migrate/src/schema_migrate/runner.clj @@ -0,0 +1,139 @@ +(ns schema-migrate.runner + (:require + [clojure.java.io :as io] + [clojure.string :as str] + [datomic.api :as d] + [datomic-store.main :as ds] + [schema-migrate.core :as core])) + +(defn migration-applied? + "Check if a migration has already been applied." + [conn migration-id] + (some? (d/q '[:find ?e . + :in $ ?id + :where [?e :bp/migration-id ?id]] + (d/db conn) migration-id))) + +(defn- clj-file? [^java.io.File f] + (and (.isFile f) + (.endsWith (.getName f) ".clj") + (not (.startsWith (.getName f) "#")) + (not (.startsWith (.getName f) ".")))) + +(defn- file->ns-sym [^java.io.File f] + (-> (.getName f) + (str/replace #"\.clj$" "") + (str/replace "_" "-") + (->> (str "migrations.")) + symbol)) + +(defn- read-ns-form + "Read the first form from `file` without evaluating it. Returns nil on + any read failure." + [^java.io.File file] + (try + (with-open [r (java.io.PushbackReader. (io/reader file))] + (binding [*read-eval* false] + (read r))) + (catch Exception _ nil))) + +(defn- ns-ignored? + "True when the file's `ns` form carries `:migrate/ignore? true` metadata, + either as `^{…}` on the ns symbol or as an attr-map after an optional + docstring. Reads only the first form — does not `require` the namespace." + [^java.io.File file] + (let [form (read-ns-form file)] + (boolean + (and (seq? form) + (= 'ns (first form)) + (let [symbol-meta (meta (second form)) + attr-map (->> (drop 2 form) + (drop-while string?) + first)] + (or (:migrate/ignore? symbol-meta) + (and (map? attr-map) + (:migrate/ignore? attr-map)))))))) + +(defn discover-migrations + "Find all migration namespaces in `dir`. + Returns them sorted by name. + Skips the template and namespaces with `^{:migrate/ignore? true}`. + + The ignore check reads only each file's `ns` form, so top-level side + effects in ignored migrations never fire. + + Each migration must export one of: + - `payload-fn` — a function of `conn` returning transaction data + - `payload` — a def containing transaction data + - `payload-steps` — a vector of functions or payloads, executed in order" + [dir] + (->> (io/file dir) + (.listFiles) + (filter clj-file?) + (remove ns-ignored?) + (sort-by #(.getName ^java.io.File %)) + (keep (fn [^java.io.File f] + (let [ns-sym (file->ns-sym f)] + (when-not (= ns-sym 'migrations.template) + ;; load-file so migrations work from any directory, + ;; not just those on the classpath + (load-file (.getAbsolutePath f)) + {:id (name ns-sym) + :ns-sym ns-sym + :payload-var (or (ns-resolve ns-sym 'payload-fn) + (ns-resolve ns-sym 'payload)) + :steps-var (ns-resolve ns-sym 'payload-steps)})))) + vec)) + +(defn- resolve-payload + "Resolve a payload value — call it if it's a function, otherwise return as-is." + [p conn] + (if (fn? p) (p conn) p)) + +(defn- run-single-step! + "Transact a single payload with a migration marker. Returns the tx result." + [conn payload marker] + (ds/transact conn (concat payload [marker]))) + +(defn- run-multi-step! + "Transact each step in order. If any step fails, roll back all + previously completed steps in reverse order, then re-throw." + [conn steps marker] + (let [completed (atom [])] + (try + (doseq [step steps] + (let [payload (resolve-payload step conn) + tx-result (ds/transact conn payload)] + (swap! completed conj tx-result))) + ;; All steps succeeded — record the migration marker + (ds/transact conn [marker]) + (catch Exception e + ;; Roll back completed steps in reverse order + (doseq [tx-result (reverse @completed)] + (try + (core/rollback-tx! conn tx-result) + (catch Exception rollback-ex + (println " WARNING: rollback failed:" (.getMessage rollback-ex))))) + (throw e))))) + +(defn run-pending-migrations! + "Run all pending migrations in order. Halts on failure. + Multi-step migrations are rolled back if any step fails." + [conn dir] + (let [migrations (discover-migrations dir)] + (doseq [{:keys [id payload-var steps-var]} migrations] + (cond + (migration-applied? conn id) + nil + + (and (nil? payload-var) (nil? steps-var)) + (println "Skipping" id "— no payload-fn, payload, or payload-steps defined") + + :else + (do (println "Running migration:" id) + (let [marker (core/->migration id)] + (if steps-var + (run-multi-step! conn @steps-var marker) + (let [payload (resolve-payload @payload-var conn)] + (run-single-step! conn payload marker)))) + (println " Applied:" id)))))) diff --git a/components/schema_migrate/test/schema_migrate/runner_test.clj b/components/schema_migrate/test/schema_migrate/runner_test.clj new file mode 100644 index 000000000..66c6424e7 --- /dev/null +++ b/components/schema_migrate/test/schema_migrate/runner_test.clj @@ -0,0 +1,226 @@ +(ns schema-migrate.runner-test + (:require + [clojure.java.io :as io] + [clojure.test :refer [deftest is testing use-fixtures]] + [datomic.api :as d] + [schema-migrate.runner :as runner])) + +;;; ========================================================================= +;;; Test Helpers +;;; ========================================================================= + +(def test-schema + [{:db/ident :bp/uuid + :db/valueType :db.type/string + :db/cardinality :db.cardinality/one + :db/unique :db.unique/identity} + {:db/ident :bp/nid + :db/valueType :db.type/string + :db/cardinality :db.cardinality/one + :db/unique :db.unique/identity} + {:db/ident :bp/migration-id + :db/valueType :db.type/string + :db/cardinality :db.cardinality/one + :db/unique :db.unique/identity + :db/index true} + {:db/ident :test/name + :db/valueType :db.type/string + :db/cardinality :db.cardinality/one} + {:db/ident :test/value + :db/valueType :db.type/long + :db/cardinality :db.cardinality/one}]) + +(def ^:dynamic *conn* nil) + +(defn- create-test-db [] + (let [uri (str "datomic:mem://runner-test-" (random-uuid)) + _ (d/create-database uri) + conn (d/connect uri)] + @(d/transact conn test-schema) + conn)) + +(use-fixtures :each + (fn [f] + (binding [*conn* (create-test-db)] + (f)))) + +;;; ========================================================================= +;;; Test Migration Fixtures +;;; ========================================================================= + +(defn- write-migration! + "Write a migration file to `dir` and return the file." + [dir filename content] + (let [f (io/file dir filename)] + (spit f content) + f)) + +(defn- with-temp-migrations + "Create a temp directory with migration files, run `f`, then clean up." + [migrations f] + (let [dir (io/file (System/getProperty "java.io.tmpdir") + (str "migrations-test-" (random-uuid)))] + (.mkdirs dir) + (try + (doseq [{:keys [filename content]} migrations] + (write-migration! dir filename content)) + (f dir) + (finally + (doseq [file (.listFiles dir)] (.delete file)) + (.delete dir))))) + +;;; ========================================================================= +;;; Tests +;;; ========================================================================= + +(deftest single-step-payload-fn-test + (testing "A migration with payload-fn is applied and tracked" + (with-temp-migrations + [{:filename "2026_01_01_add_test_entity.clj" + :content "(ns migrations.2026-01-01-add-test-entity + (:require [datomic.api :as d])) + +(defn payload-fn [conn] + [{:test/name \"hello\" :test/value 42}]) +"}] + (fn [dir] + (runner/run-pending-migrations! *conn* (str dir)) + (is (runner/migration-applied? *conn* "migrations.2026-01-01-add-test-entity")) + (is (= "hello" + (d/q '[:find ?n . + :where [?e :test/name ?n]] + (d/db *conn*)))))))) + +(deftest single-step-payload-def-test + (testing "A migration with a static payload def is applied" + (with-temp-migrations + [{:filename "2026_01_01_static_payload.clj" + :content "(ns migrations.2026-01-01-static-payload) + +(def payload [{:test/name \"static\" :test/value 99}]) +"}] + (fn [dir] + (runner/run-pending-migrations! *conn* (str dir)) + (is (runner/migration-applied? *conn* "migrations.2026-01-01-static-payload")) + (is (= 99 + (d/q '[:find ?v . + :where [?e :test/name "static"] + [?e :test/value ?v]] + (d/db *conn*)))))))) + +(deftest idempotency-test + (testing "Running migrations twice does not duplicate data" + (with-temp-migrations + [{:filename "2026_01_01_idempotent.clj" + :content "(ns migrations.2026-01-01-idempotent) + +(defn payload-fn [conn] + [{:test/name \"once\" :test/value 1}]) +"}] + (fn [dir] + (runner/run-pending-migrations! *conn* (str dir)) + (runner/run-pending-migrations! *conn* (str dir)) + (is (= 1 + (d/q '[:find (count ?e) . + :where [?e :test/name "once"]] + (d/db *conn*)))))))) + +(deftest ignore-metadata-test + (testing "Migrations with ^{:migrate/ignore? true} are skipped" + (with-temp-migrations + [{:filename "2026_01_01_ignored.clj" + :content "(ns ^{:migrate/ignore? true} migrations.2026-01-01-ignored) + +(defn payload-fn [conn] + [{:test/name \"should-not-exist\" :test/value 0}]) +"} + {:filename "2026_01_02_not_ignored.clj" + :content "(ns migrations.2026-01-02-not-ignored) + +(defn payload-fn [conn] + [{:test/name \"should-exist\" :test/value 1}]) +"}] + (fn [dir] + (runner/run-pending-migrations! *conn* (str dir)) + (is (not (runner/migration-applied? *conn* "migrations.2026-01-01-ignored"))) + (is (runner/migration-applied? *conn* "migrations.2026-01-02-not-ignored")) + (is (nil? (d/q '[:find ?e . + :where [?e :test/name "should-not-exist"]] + (d/db *conn*)))))))) + +(deftest ordering-test + (testing "Migrations run in filename-sorted order" + (let [order (atom [])] + (with-temp-migrations + [{:filename "2026_01_02_second.clj" + :content (str "(ns migrations.2026-01-02-second)\n" + "(defn payload-fn [conn]\n" + " [{:test/name \"second\" :test/value 2}])\n")} + {:filename "2026_01_01_first.clj" + :content (str "(ns migrations.2026-01-01-first)\n" + "(defn payload-fn [conn]\n" + " [{:test/name \"first\" :test/value 1}])\n")}] + (fn [dir] + (runner/run-pending-migrations! *conn* (str dir)) + (is (runner/migration-applied? *conn* "migrations.2026-01-01-first")) + (is (runner/migration-applied? *conn* "migrations.2026-01-02-second"))))))) + +(deftest multi-step-success-test + (testing "payload-steps migrations run all steps and record marker" + (with-temp-migrations + [{:filename "2026_01_01_multi_step.clj" + :content "(ns migrations.2026-01-01-multi-step) + +(def payload-steps + [(fn [conn] [{:test/name \"step1\" :test/value 1}]) + (fn [conn] [{:test/name \"step2\" :test/value 2}])]) +"}] + (fn [dir] + (runner/run-pending-migrations! *conn* (str dir)) + (is (runner/migration-applied? *conn* "migrations.2026-01-01-multi-step")) + (is (= 1 (d/q '[:find ?v . :where [?e :test/name "step1"] [?e :test/value ?v]] + (d/db *conn*)))) + (is (= 2 (d/q '[:find ?v . :where [?e :test/name "step2"] [?e :test/value ?v]] + (d/db *conn*)))))))) + +(deftest multi-step-rollback-test + (testing "When a step fails, previous steps are rolled back and marker is not recorded" + (with-temp-migrations + [{:filename "2026_01_01_multi_fail.clj" + :content "(ns migrations.2026-01-01-multi-fail) + +(def payload-steps + [(fn [conn] [{:test/name \"will-rollback\" :test/value 1}]) + (fn [conn] (throw (ex-info \"Step 2 failed\" {})))]) +"}] + (fn [dir] + (is (thrown? Exception + (runner/run-pending-migrations! *conn* (str dir)))) + (is (not (runner/migration-applied? *conn* "migrations.2026-01-01-multi-fail"))) + ;; Step 1 should have been rolled back + (is (nil? (d/q '[:find ?e . + :where [?e :test/name "will-rollback"]] + (d/db *conn*)))))))) + +(deftest halt-on-failure-test + (testing "A failing migration halts execution — subsequent migrations don't run" + (with-temp-migrations + [{:filename "2026_01_01_fails.clj" + :content "(ns migrations.2026-01-01-fails) + +(defn payload-fn [conn] + (throw (ex-info \"Boom\" {}))) +"} + {:filename "2026_01_02_should_not_run.clj" + :content "(ns migrations.2026-01-02-should-not-run) + +(defn payload-fn [conn] + [{:test/name \"unreachable\" :test/value 0}]) +"}] + (fn [dir] + (is (thrown? Exception + (runner/run-pending-migrations! *conn* (str dir)))) + (is (not (runner/migration-applied? *conn* "migrations.2026-01-02-should-not-run"))) + (is (nil? (d/q '[:find ?e . + :where [?e :test/name "unreachable"]] + (d/db *conn*)))))))) diff --git a/development/migrations/2024_07_015_add_CVSorCLS_group_variable.clj b/development/migrations/2024_07_015_add_CVSorCLS_group_variable.clj index a5829236e..2babcd4ca 100644 --- a/development/migrations/2024_07_015_add_CVSorCLS_group_variable.clj +++ b/development/migrations/2024_07_015_add_CVSorCLS_group_variable.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-07-015-add-CVSorCLS-group-variable +(ns ^{:migrate/ignore? true} migrations.2024-07-015-add-CVSorCLS-group-variable (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2024_07_15_active_crown_flame_length.clj b/development/migrations/2024_07_15_active_crown_flame_length.clj index 235ffa64e..f72d63d7f 100644 --- a/development/migrations/2024_07_15_active_crown_flame_length.clj +++ b/development/migrations/2024_07_15_active_crown_flame_length.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-07-15-active-crown-flame-length) +(ns ^{:migrate/ignore? true} migrations.2024-07-15-active-crown-flame-length) #_{:clj-kondo/ignore [:missing-docstring]} (do diff --git a/development/migrations/2024_07_15_add_group_variable_direction.clj b/development/migrations/2024_07_15_add_group_variable_direction.clj index 2d2de6036..86819bddc 100644 --- a/development/migrations/2024_07_15_add_group_variable_direction.clj +++ b/development/migrations/2024_07_15_add_group_variable_direction.clj @@ -1,4 +1,4 @@ -(ns migrations.2024_07_15_add_group_variable_direction +(ns ^{:migrate/ignore? true} migrations.2024_07_15_add_group_variable_direction (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2024_07_15_mortality_conditionally_set_cvs_cls.clj b/development/migrations/2024_07_15_mortality_conditionally_set_cvs_cls.clj index d17ed0ad1..90eb8fe10 100644 --- a/development/migrations/2024_07_15_mortality_conditionally_set_cvs_cls.clj +++ b/development/migrations/2024_07_15_mortality_conditionally_set_cvs_cls.clj @@ -1,4 +1,4 @@ -(ns migrations.2024_07_15_mortality_conditionally_set_cvs_cls +(ns ^{:migrate/ignore? true} migrations.2024_07_15_mortality_conditionally_set_cvs_cls (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2024_07_15_mortality_conditionally_set_scorch_height.clj b/development/migrations/2024_07_15_mortality_conditionally_set_scorch_height.clj index fd5645720..7fc8c57da 100644 --- a/development/migrations/2024_07_15_mortality_conditionally_set_scorch_height.clj +++ b/development/migrations/2024_07_15_mortality_conditionally_set_scorch_height.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-07-15-mortality-conditionally-set-scorch-height +(ns ^{:migrate/ignore? true} migrations.2024-07-15-mortality-conditionally-set-scorch-height (:require [schema-migrate.interface :as sm] [datomic.api :as d] diff --git a/development/migrations/2024_07_15_mortality_default_equation_type_for_species.clj b/development/migrations/2024_07_15_mortality_default_equation_type_for_species.clj index 62ea88956..0990fdf99 100644 --- a/development/migrations/2024_07_15_mortality_default_equation_type_for_species.clj +++ b/development/migrations/2024_07_15_mortality_default_equation_type_for_species.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-07-15-mortality-default-equation-type-for-species +(ns ^{:migrate/ignore? true} migrations.2024-07-15-mortality-default-equation-type-for-species (:require [schema-migrate.interface :as sm] [behave.schema.rules :refer [vms-rules]] [datomic.api :as d] diff --git a/development/migrations/2024_07_15_mortality_in_all_directions.clj b/development/migrations/2024_07_15_mortality_in_all_directions.clj index df4932831..335e7e19c 100644 --- a/development/migrations/2024_07_15_mortality_in_all_directions.clj +++ b/development/migrations/2024_07_15_mortality_in_all_directions.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-07-15-mortality-in-all-directions +(ns ^{:migrate/ignore? true} migrations.2024-07-15-mortality-in-all-directions (:require [schema-migrate.interface :as sm] [behave.schema.rules :refer [vms-rules]] [datomic.api :as d] diff --git a/development/migrations/2024_07_15_new_links_from_surface_to_mortality.clj b/development/migrations/2024_07_15_new_links_from_surface_to_mortality.clj index 326bc51d2..406110def 100644 --- a/development/migrations/2024_07_15_new_links_from_surface_to_mortality.clj +++ b/development/migrations/2024_07_15_new_links_from_surface_to_mortality.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-07-15-new-links-from-surface-to-mortality +(ns ^{:migrate/ignore? true} migrations.2024-07-15-new-links-from-surface-to-mortality (:require [schema-migrate.interface :as sm] [behave.schema.rules :refer [vms-rules]] [datomic.api :as d] diff --git a/development/migrations/2024_07_16_add_conditionals_mortality_inputs_crown_ratio_canopy_height.clj b/development/migrations/2024_07_16_add_conditionals_mortality_inputs_crown_ratio_canopy_height.clj index d643ff1e6..b97f604c4 100644 --- a/development/migrations/2024_07_16_add_conditionals_mortality_inputs_crown_ratio_canopy_height.clj +++ b/development/migrations/2024_07_16_add_conditionals_mortality_inputs_crown_ratio_canopy_height.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-07-16-add-conditionals-mortality-inputs-crown-ratio-canopy-height +(ns ^{:migrate/ignore? true} migrations.2024-07-16-add-conditionals-mortality-inputs-crown-ratio-canopy-height (:require [schema-migrate.interface :as sm] [datomic.api :as d] diff --git a/development/migrations/2024_07_16_torching_trees_conditionals.clj b/development/migrations/2024_07_16_torching_trees_conditionals.clj index 136655238..9419fa872 100644 --- a/development/migrations/2024_07_16_torching_trees_conditionals.clj +++ b/development/migrations/2024_07_16_torching_trees_conditionals.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-07-16-torching-trees-conditionals) +(ns ^{:migrate/ignore? true} migrations.2024-07-16-torching-trees-conditionals) ;; Removes the following Submodules if only Spot Outputs are selected ;; in Surface + Crown diff --git a/development/migrations/2024_07_17_add_active_crown_flame_length_variable.clj b/development/migrations/2024_07_17_add_active_crown_flame_length_variable.clj index f8896a76b..191dcbd2e 100644 --- a/development/migrations/2024_07_17_add_active_crown_flame_length_variable.clj +++ b/development/migrations/2024_07_17_add_active_crown_flame_length_variable.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-07-17-add-active-crown-flame-length-variable) +(ns ^{:migrate/ignore? true} migrations.2024-07-17-add-active-crown-flame-length-variable) #_{:clj-kondo/ignore [:missing-docstring]} (do diff --git a/development/migrations/2024_07_18_mortality_wind_speed.clj b/development/migrations/2024_07_18_mortality_wind_speed.clj index 62f271959..2a9486d43 100644 --- a/development/migrations/2024_07_18_mortality_wind_speed.clj +++ b/development/migrations/2024_07_18_mortality_wind_speed.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-07-18-mortality-wind-speed) +(ns ^{:migrate/ignore? true} migrations.2024-07-18-mortality-wind-speed) #_{:clj-kondo/ignore [:missing-docstring]} (do diff --git a/development/migrations/2024_07_30_add_wind_driven_fuel_codes.clj b/development/migrations/2024_07_30_add_wind_driven_fuel_codes.clj index dcab9ccce..665a3befd 100644 --- a/development/migrations/2024_07_30_add_wind_driven_fuel_codes.clj +++ b/development/migrations/2024_07_30_add_wind_driven_fuel_codes.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-07-30-add-wind-driven-fuel-codes +(ns ^{:migrate/ignore? true} migrations.2024-07-30-add-wind-driven-fuel-codes (:require [schema-migrate.interface :as sm] [datomic.api :as d] diff --git a/development/migrations/2024_07_30_automated_bole_char_height_output.clj b/development/migrations/2024_07_30_automated_bole_char_height_output.clj index 3baaa7991..2ee82a90d 100644 --- a/development/migrations/2024_07_30_automated_bole_char_height_output.clj +++ b/development/migrations/2024_07_30_automated_bole_char_height_output.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-07-30-automated-bole-char-height-output +(ns ^{:migrate/ignore? true} migrations.2024-07-30-automated-bole-char-height-output (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2024_07_30_mortality_scorch_submodule_conditionals.clj b/development/migrations/2024_07_30_mortality_scorch_submodule_conditionals.clj index 33d9efa55..a101b25df 100644 --- a/development/migrations/2024_07_30_mortality_scorch_submodule_conditionals.clj +++ b/development/migrations/2024_07_30_mortality_scorch_submodule_conditionals.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-07-30-mortality-scorch-submodule-conditionals +(ns ^{:migrate/ignore? true} migrations.2024-07-30-mortality-scorch-submodule-conditionals (:require [schema-migrate.interface :as sm] [datomic.api :as d] diff --git a/development/migrations/2024_08_18_fix_wind_and_slope.clj b/development/migrations/2024_08_18_fix_wind_and_slope.clj index 588dd8671..87e31d58e 100644 --- a/development/migrations/2024_08_18_fix_wind_and_slope.clj +++ b/development/migrations/2024_08_18_fix_wind_and_slope.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-08-18-fix-wind-and-slope) +(ns ^{:migrate/ignore? true} migrations.2024-08-18-fix-wind-and-slope) ;; Adds Size Inputs from Surface and Crown to Wind and Slope diff --git a/development/migrations/2024_08_19_fix_surface_input_downwind_canopy_cover.clj b/development/migrations/2024_08_19_fix_surface_input_downwind_canopy_cover.clj index 4a1222b00..fedbfacc8 100644 --- a/development/migrations/2024_08_19_fix_surface_input_downwind_canopy_cover.clj +++ b/development/migrations/2024_08_19_fix_surface_input_downwind_canopy_cover.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-08-19-fix-surface-input-downwind-canopy-cover +(ns ^{:migrate/ignore? true} migrations.2024-08-19-fix-surface-input-downwind-canopy-cover (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2024_08_20_remove_waf_spot_only_outputs.clj b/development/migrations/2024_08_20_remove_waf_spot_only_outputs.clj index 524e30903..fc9f544f2 100644 --- a/development/migrations/2024_08_20_remove_waf_spot_only_outputs.clj +++ b/development/migrations/2024_08_20_remove_waf_spot_only_outputs.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-08-20-remove-waf-spot-only-outputs) +(ns ^{:migrate/ignore? true} migrations.2024-08-20-remove-waf-spot-only-outputs) ;; Removes Wind-Adjustment Factor in Surface + Crown ;; when only Spot outputs are selected diff --git a/development/migrations/2024_08_21_fix_crown_ratio_setters_and_getters.clj b/development/migrations/2024_08_21_fix_crown_ratio_setters_and_getters.clj index df0dea5fe..6018310eb 100644 --- a/development/migrations/2024_08_21_fix_crown_ratio_setters_and_getters.clj +++ b/development/migrations/2024_08_21_fix_crown_ratio_setters_and_getters.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-08-21-fix-crown-ratio-setters-and-getters +(ns ^{:migrate/ignore? true} migrations.2024-08-21-fix-crown-ratio-setters-and-getters (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2024_08_22_remove_canopy_cover.clj b/development/migrations/2024_08_22_remove_canopy_cover.clj index 84c8cd628..d1be77dda 100644 --- a/development/migrations/2024_08_22_remove_canopy_cover.clj +++ b/development/migrations/2024_08_22_remove_canopy_cover.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-08-22-remove-canopy-cover) +(ns ^{:migrate/ignore? true} migrations.2024-08-22-remove-canopy-cover) ;; Removes Canopy Cover Group & Group Variable diff --git a/development/migrations/2024_08_26_fix_list_options_order.clj b/development/migrations/2024_08_26_fix_list_options_order.clj index 98bb229af..935ff969d 100644 --- a/development/migrations/2024_08_26_fix_list_options_order.clj +++ b/development/migrations/2024_08_26_fix_list_options_order.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-08-26-fix-list-options-order +(ns ^{:migrate/ignore? true} migrations.2024-08-26-fix-list-options-order (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2024_08_30_add_doi_fire_behavior_outputs.clj b/development/migrations/2024_08_30_add_doi_fire_behavior_outputs.clj index 434980ab9..d76ad2165 100644 --- a/development/migrations/2024_08_30_add_doi_fire_behavior_outputs.clj +++ b/development/migrations/2024_08_30_add_doi_fire_behavior_outputs.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-08-30-add-doi-fire-behavior-outputs +(ns ^{:migrate/ignore? true} migrations.2024-08-30-add-doi-fire-behavior-outputs (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2024_09_16_add_ignite_module_to_surface.clj b/development/migrations/2024_09_16_add_ignite_module_to_surface.clj index e1092b1bb..98cecd205 100644 --- a/development/migrations/2024_09_16_add_ignite_module_to_surface.clj +++ b/development/migrations/2024_09_16_add_ignite_module_to_surface.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-09-16-add-ignite-module-to-surface +(ns ^{:migrate/ignore? true} migrations.2024-09-16-add-ignite-module-to-surface (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2024_10_03_update_sig_spot_adapter.clj b/development/migrations/2024_10_03_update_sig_spot_adapter.clj index 440312d68..acd2fd042 100644 --- a/development/migrations/2024_10_03_update_sig_spot_adapter.clj +++ b/development/migrations/2024_10_03_update_sig_spot_adapter.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-10-03-update-sig-spot-adapter +(ns ^{:migrate/ignore? true} migrations.2024-10-03-update-sig-spot-adapter (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2024_10_17_add_input_group_translations.clj b/development/migrations/2024_10_17_add_input_group_translations.clj index 2249bbed1..3c1096e17 100644 --- a/development/migrations/2024_10_17_add_input_group_translations.clj +++ b/development/migrations/2024_10_17_add_input_group_translations.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-10-17-add-input-group-translations +(ns ^{:migrate/ignore? true} migrations.2024-10-17-add-input-group-translations (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2024_10_27_add_crown_moisture_scenario.clj b/development/migrations/2024_10_27_add_crown_moisture_scenario.clj index c1dc42f39..aaa918ddd 100644 --- a/development/migrations/2024_10_27_add_crown_moisture_scenario.clj +++ b/development/migrations/2024_10_27_add_crown_moisture_scenario.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-10-27-add-crown-moisture-scenario +(ns ^{:migrate/ignore? true} migrations.2024-10-27-add-crown-moisture-scenario (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2024_11_05_fix_min_max.clj b/development/migrations/2024_11_05_fix_min_max.clj index fb07499c1..36625abb8 100644 --- a/development/migrations/2024_11_05_fix_min_max.clj +++ b/development/migrations/2024_11_05_fix_min_max.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-11-05-fix-min-max +(ns ^{:migrate/ignore? true} migrations.2024-11-05-fix-min-max (:require [schema-migrate.interface :as sm] [clojure.string :as str] [datomic.api :as d] diff --git a/development/migrations/2024_11_13_hide_wind_submodule_for_ignition.clj b/development/migrations/2024_11_13_hide_wind_submodule_for_ignition.clj index 85c648f90..d5e5d8575 100644 --- a/development/migrations/2024_11_13_hide_wind_submodule_for_ignition.clj +++ b/development/migrations/2024_11_13_hide_wind_submodule_for_ignition.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-11-13-hide-wind-submodule-for-ignition +(ns ^{:migrate/ignore? true} migrations.2024-11-13-hide-wind-submodule-for-ignition (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2024_11_14_add_probability_of_ignition_to_crown.clj b/development/migrations/2024_11_14_add_probability_of_ignition_to_crown.clj index 87c73fefa..1635a3301 100644 --- a/development/migrations/2024_11_14_add_probability_of_ignition_to_crown.clj +++ b/development/migrations/2024_11_14_add_probability_of_ignition_to_crown.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-11-14-add-probability-of-ignition-to-crown +(ns ^{:migrate/ignore? true} migrations.2024-11-14-add-probability-of-ignition-to-crown (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2024_11_19_update_crown_fire_type_conditionals.clj b/development/migrations/2024_11_19_update_crown_fire_type_conditionals.clj index bddaae60c..00ddd3c58 100644 --- a/development/migrations/2024_11_19_update_crown_fire_type_conditionals.clj +++ b/development/migrations/2024_11_19_update_crown_fire_type_conditionals.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-11-19-update-crown-fire-type-conditionals +(ns ^{:migrate/ignore? true} migrations.2024-11-19-update-crown-fire-type-conditionals (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2024_11_25_add_tags_to_surface_fuel_model_list_options.clj b/development/migrations/2024_11_25_add_tags_to_surface_fuel_model_list_options.clj index 2a345cd96..c18b8798e 100644 --- a/development/migrations/2024_11_25_add_tags_to_surface_fuel_model_list_options.clj +++ b/development/migrations/2024_11_25_add_tags_to_surface_fuel_model_list_options.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-11-25-add-tags-to-surface-fuel-model-list-options +(ns ^{:migrate/ignore? true} migrations.2024-11-25-add-tags-to-surface-fuel-model-list-options (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2024_12_04_add_new_fuel_model_codes.clj b/development/migrations/2024_12_04_add_new_fuel_model_codes.clj index a1283b7be..d2de56ed6 100644 --- a/development/migrations/2024_12_04_add_new_fuel_model_codes.clj +++ b/development/migrations/2024_12_04_add_new_fuel_model_codes.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-12-04-add-new-fuel-model-codes +(ns ^{:migrate/ignore? true} migrations.2024-12-04-add-new-fuel-model-codes (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2024_12_05_hide_duplicate_canopy_height.clj b/development/migrations/2024_12_05_hide_duplicate_canopy_height.clj index 061c200fd..bdd5f629d 100644 --- a/development/migrations/2024_12_05_hide_duplicate_canopy_height.clj +++ b/development/migrations/2024_12_05_hide_duplicate_canopy_height.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-12-05-hide-duplicate-canopy-height +(ns ^{:migrate/ignore? true} migrations.2024-12-05-hide-duplicate-canopy-height (:require [schema-migrate.interface :as sm] [datomic.api :as d] diff --git a/development/migrations/2024_12_13_add_waf_sub_conditionals.clj b/development/migrations/2024_12_13_add_waf_sub_conditionals.clj index 19b7c5e60..2e85da0db 100644 --- a/development/migrations/2024_12_13_add_waf_sub_conditionals.clj +++ b/development/migrations/2024_12_13_add_waf_sub_conditionals.clj @@ -1,4 +1,4 @@ -(ns migrations.2024-12-13-add-waf-sub-conditionals +(ns ^{:migrate/ignore? true} migrations.2024-12-13-add-waf-sub-conditionals (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_01_07_fix_subtool_order.clj b/development/migrations/2025_01_07_fix_subtool_order.clj index dda20d852..c6d15115e 100644 --- a/development/migrations/2025_01_07_fix_subtool_order.clj +++ b/development/migrations/2025_01_07_fix_subtool_order.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-01-07-fix-subtool-order +(ns ^{:migrate/ignore? true} migrations.2025-01-07-fix-subtool-order (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_01_10_fix_equals_conditionals.clj b/development/migrations/2025_01_10_fix_equals_conditionals.clj index 0fe5b0db3..f2a9cb89a 100644 --- a/development/migrations/2025_01_10_fix_equals_conditionals.clj +++ b/development/migrations/2025_01_10_fix_equals_conditionals.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-01-10-fix-equals-conditionals +(ns ^{:migrate/ignore? true} migrations.2025-01-10-fix-equals-conditionals (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_01_10_remove_obsolete_mortality_submodule_scorch_height.clj b/development/migrations/2025_01_10_remove_obsolete_mortality_submodule_scorch_height.clj index 06f88c3bc..16afdc539 100644 --- a/development/migrations/2025_01_10_remove_obsolete_mortality_submodule_scorch_height.clj +++ b/development/migrations/2025_01_10_remove_obsolete_mortality_submodule_scorch_height.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-01-10-remove-obsolete-mortality-submodule-scorch-height +(ns ^{:migrate/ignore? true} migrations.2025-01-10-remove-obsolete-mortality-submodule-scorch-height (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_01_27_add_list_option_color_tags.clj b/development/migrations/2025_01_27_add_list_option_color_tags.clj index fc969a8d9..7b292b376 100644 --- a/development/migrations/2025_01_27_add_list_option_color_tags.clj +++ b/development/migrations/2025_01_27_add_list_option_color_tags.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-01-27-add-list-option-color-tags +(ns ^{:migrate/ignore? true} migrations.2025-01-27-add-list-option-color-tags (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_01_31_update_fuel_moisture_conditionals.clj b/development/migrations/2025_01_31_update_fuel_moisture_conditionals.clj index 23e0297a8..18545453c 100644 --- a/development/migrations/2025_01_31_update_fuel_moisture_conditionals.clj +++ b/development/migrations/2025_01_31_update_fuel_moisture_conditionals.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-01-31-update-fuel-moisture-conditionals +(ns ^{:migrate/ignore? true} migrations.2025-01-31-update-fuel-moisture-conditionals (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_02_20_add_gacc_lookup_functions.clj b/development/migrations/2025_02_20_add_gacc_lookup_functions.clj index 316f64a2f..7d8dfaa2b 100644 --- a/development/migrations/2025_02_20_add_gacc_lookup_functions.clj +++ b/development/migrations/2025_02_20_add_gacc_lookup_functions.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-02-20-add-gacc-lookup-functions +(ns ^{:migrate/ignore? true} migrations.2025-02-20-add-gacc-lookup-functions (:require [behave-cms.store :refer [default-conn]] [behave-cms.server :as cms] [cms-import :refer [add-export-file-to-conn]])) diff --git a/development/migrations/2025_02_20_add_gacc_tags_to_mortality_tree_species.clj b/development/migrations/2025_02_20_add_gacc_tags_to_mortality_tree_species.clj index 888d6abdf..f7e857e52 100644 --- a/development/migrations/2025_02_20_add_gacc_tags_to_mortality_tree_species.clj +++ b/development/migrations/2025_02_20_add_gacc_tags_to_mortality_tree_species.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-02-20-add-gacc-tags-to-mortality-tree-species +(ns ^{:migrate/ignore? true} migrations.2025-02-20-add-gacc-tags-to-mortality-tree-species (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_02_24_add_mising_fuel_moisture_conditionals.clj b/development/migrations/2025_02_24_add_mising_fuel_moisture_conditionals.clj index 9f27262c8..fd081fac9 100644 --- a/development/migrations/2025_02_24_add_mising_fuel_moisture_conditionals.clj +++ b/development/migrations/2025_02_24_add_mising_fuel_moisture_conditionals.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-02-24-add-mising-fuel-moisture-conditionals +(ns ^{:migrate/ignore? true} migrations.2025-02-24-add-mising-fuel-moisture-conditionals (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_03_03_add_fuel_load_outputs.clj b/development/migrations/2025_03_03_add_fuel_load_outputs.clj index f2281bde7..2eb4315f7 100644 --- a/development/migrations/2025_03_03_add_fuel_load_outputs.clj +++ b/development/migrations/2025_03_03_add_fuel_load_outputs.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-03-03-add-fuel-load-outputs +(ns ^{:migrate/ignore? true} migrations.2025-03-03-add-fuel-load-outputs (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_03_11_update_contain_add_resource_edn.clj b/development/migrations/2025_03_11_update_contain_add_resource_edn.clj index f849df3e0..56ded4e5a 100644 --- a/development/migrations/2025_03_11_update_contain_add_resource_edn.clj +++ b/development/migrations/2025_03_11_update_contain_add_resource_edn.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-03-11-update-contain-add-resource-edn +(ns ^{:migrate/ignore? true} migrations.2025-03-11-update-contain-add-resource-edn (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_03_13_rearrange_group_variables_crown_size_submodule.clj b/development/migrations/2025_03_13_rearrange_group_variables_crown_size_submodule.clj index 92a336e1e..51daae0bf 100644 --- a/development/migrations/2025_03_13_rearrange_group_variables_crown_size_submodule.clj +++ b/development/migrations/2025_03_13_rearrange_group_variables_crown_size_submodule.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-03-13-rearrange-group-variables-crown-size-submodule +(ns ^{:migrate/ignore? true} migrations.2025-03-13-rearrange-group-variables-crown-size-submodule (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_03_14_hide_slope_vs_horizontal_distance_subtool.clj b/development/migrations/2025_03_14_hide_slope_vs_horizontal_distance_subtool.clj index d0ed579d5..5f3aaa32d 100644 --- a/development/migrations/2025_03_14_hide_slope_vs_horizontal_distance_subtool.clj +++ b/development/migrations/2025_03_14_hide_slope_vs_horizontal_distance_subtool.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-03-14-hide-slope-vs-horizontal-distance-subtool +(ns ^{:migrate/ignore? true} migrations.2025-03-14-hide-slope-vs-horizontal-distance-subtool (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_03_18_update_mortality_tree_species_names.clj b/development/migrations/2025_03_18_update_mortality_tree_species_names.clj index 97c25f2c2..7e6cefba3 100644 --- a/development/migrations/2025_03_18_update_mortality_tree_species_names.clj +++ b/development/migrations/2025_03_18_update_mortality_tree_species_names.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-03-18-update-mortality-tree-species-names +(ns ^{:migrate/ignore? true} migrations.2025-03-18-update-mortality-tree-species-names (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_03_18_update_mortality_tree_species_tags.clj b/development/migrations/2025_03_18_update_mortality_tree_species_tags.clj index e334067cc..05cc7d43a 100644 --- a/development/migrations/2025_03_18_update_mortality_tree_species_tags.clj +++ b/development/migrations/2025_03_18_update_mortality_tree_species_tags.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-03-18-update-mortality-tree-species-tags +(ns ^{:migrate/ignore? true} migrations.2025-03-18-update-mortality-tree-species-tags (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_03_31_add_version_warning_translations.clj b/development/migrations/2025_03_31_add_version_warning_translations.clj index defcc5afe..8ed8e4262 100644 --- a/development/migrations/2025_03_31_add_version_warning_translations.clj +++ b/development/migrations/2025_03_31_add_version_warning_translations.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-03-31-add-version-warning-translations +(ns ^{:migrate/ignore? true} migrations.2025-03-31-add-version-warning-translations (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_04_03_add_calculator_translation.clj b/development/migrations/2025_04_03_add_calculator_translation.clj index 47a65d7f3..82c0061be 100644 --- a/development/migrations/2025_04_03_add_calculator_translation.clj +++ b/development/migrations/2025_04_03_add_calculator_translation.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-04-03-add-calculator-translation +(ns ^{:migrate/ignore? true} migrations.2025-04-03-add-calculator-translation (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_04_05_migrate_list_tags.clj b/development/migrations/2025_04_05_migrate_list_tags.clj index 2cff2b8ab..a87f8e262 100644 --- a/development/migrations/2025_04_05_migrate_list_tags.clj +++ b/development/migrations/2025_04_05_migrate_list_tags.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-04-05-migrate-list-tags +(ns ^{:migrate/ignore? true} migrations.2025-04-05-migrate-list-tags (:require [schema-migrate.interface :as sm] [string-utils.interface :refer [->str ->kebab]] [datomic.api :as d] diff --git a/development/migrations/2025_04_07_add_disclaimer_translation.clj b/development/migrations/2025_04_07_add_disclaimer_translation.clj index 7a7435dd6..1089e274f 100644 --- a/development/migrations/2025_04_07_add_disclaimer_translation.clj +++ b/development/migrations/2025_04_07_add_disclaimer_translation.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-04-07-add-disclaimer-translation +(ns ^{:migrate/ignore? true} migrations.2025-04-07-add-disclaimer-translation (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_05_02_remove_duplicate_output_variable_translation.clj b/development/migrations/2025_05_02_remove_duplicate_output_variable_translation.clj index ad9599059..96426d6ae 100644 --- a/development/migrations/2025_05_02_remove_duplicate_output_variable_translation.clj +++ b/development/migrations/2025_05_02_remove_duplicate_output_variable_translation.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-05-02-remove-duplicate-output-variable-translation +(ns ^{:migrate/ignore? true} migrations.2025-05-02-remove-duplicate-output-variable-translation (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_05_20_fix_spotting.clj b/development/migrations/2025_05_20_fix_spotting.clj index d6ca908fc..54e9a9081 100644 --- a/development/migrations/2025_05_20_fix_spotting.clj +++ b/development/migrations/2025_05_20_fix_spotting.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-05-20-fix-spotting +(ns ^{:migrate/ignore? true} migrations.2025-05-20-fix-spotting (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_06_02_fix_torching_tree_species.clj b/development/migrations/2025_06_02_fix_torching_tree_species.clj index a7e682971..f4c025e57 100644 --- a/development/migrations/2025_06_02_fix_torching_tree_species.clj +++ b/development/migrations/2025_06_02_fix_torching_tree_species.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-06-02-fix-torching-tree-species +(ns ^{:migrate/ignore? true} migrations.2025-06-02-fix-torching-tree-species (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_06_11_add_translations.clj b/development/migrations/2025_06_11_add_translations.clj index 1f428358e..b2ccccc69 100644 --- a/development/migrations/2025_06_11_add_translations.clj +++ b/development/migrations/2025_06_11_add_translations.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-06-11-add-translations +(ns ^{:migrate/ignore? true} migrations.2025-06-11-add-translations (:require [schema-migrate.interface :refer [bp] :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_06_12_spot_flame_length_translation.clj b/development/migrations/2025_06_12_spot_flame_length_translation.clj index f1d10e1a3..907098cd1 100644 --- a/development/migrations/2025_06_12_spot_flame_length_translation.clj +++ b/development/migrations/2025_06_12_spot_flame_length_translation.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-06-12-spot-flame-length-translation +(ns ^{:migrate/ignore? true} migrations.2025-06-12-spot-flame-length-translation (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_06_17_add_translations_standard_workflow.clj b/development/migrations/2025_06_17_add_translations_standard_workflow.clj index 6d80f93bd..9cb2e3090 100644 --- a/development/migrations/2025_06_17_add_translations_standard_workflow.clj +++ b/development/migrations/2025_06_17_add_translations_standard_workflow.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-06-17-add-translations-standard-workflow +(ns ^{:migrate/ignore? true} migrations.2025-06-17-add-translations-standard-workflow (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_06_23_add_final_production_rate.clj b/development/migrations/2025_06_23_add_final_production_rate.clj index 5a22106e3..4a063cb7c 100644 --- a/development/migrations/2025_06_23_add_final_production_rate.clj +++ b/development/migrations/2025_06_23_add_final_production_rate.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-06-23-add-final-production-rate +(ns ^{:migrate/ignore? true} migrations.2025-06-23-add-final-production-rate (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn ]] diff --git a/development/migrations/2025_06_23_adjust_wind_speed_inputs.clj b/development/migrations/2025_06_23_adjust_wind_speed_inputs.clj index 0c35fefd5..3e80508d6 100644 --- a/development/migrations/2025_06_23_adjust_wind_speed_inputs.clj +++ b/development/migrations/2025_06_23_adjust_wind_speed_inputs.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-06-23-adjust-wind-speed-inputs +(ns ^{:migrate/ignore? true} migrations.2025-06-23-adjust-wind-speed-inputs (:require [schema-migrate.interface :as sm] [string-utils.interface :refer [->snake]] [datomic.api :as d] diff --git a/development/migrations/2025_06_23_disable_surface_wind_directions_in_csv.clj b/development/migrations/2025_06_23_disable_surface_wind_directions_in_csv.clj index ffce69a49..27276e4b5 100644 --- a/development/migrations/2025_06_23_disable_surface_wind_directions_in_csv.clj +++ b/development/migrations/2025_06_23_disable_surface_wind_directions_in_csv.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-06-23-disable-surface-wind-directions-in-csv +(ns ^{:migrate/ignore? true} migrations.2025-06-23-disable-surface-wind-directions-in-csv (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_06_23_rename_tools_to_calculators.clj b/development/migrations/2025_06_23_rename_tools_to_calculators.clj index 98f0a3b10..83334f3df 100644 --- a/development/migrations/2025_06_23_rename_tools_to_calculators.clj +++ b/development/migrations/2025_06_23_rename_tools_to_calculators.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-06-23-rename-tools-to-calculators +(ns ^{:migrate/ignore? true} migrations.2025-06-23-rename-tools-to-calculators (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_06_25_add_moisture_scenario_export_translations.clj b/development/migrations/2025_06_25_add_moisture_scenario_export_translations.clj index bd634ccb2..fad7ca36a 100644 --- a/development/migrations/2025_06_25_add_moisture_scenario_export_translations.clj +++ b/development/migrations/2025_06_25_add_moisture_scenario_export_translations.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-06-25-add-moisture-scenario-export-translations +(ns ^{:migrate/ignore? true} migrations.2025-06-25-add-moisture-scenario-export-translations (:require [clojure.string :as str] [schema-migrate.interface :as sm] [datomic.api :as d] diff --git a/development/migrations/2025_06_25_default_export_translation_key.clj b/development/migrations/2025_06_25_default_export_translation_key.clj index 2ce17e9d8..cf2af46dc 100644 --- a/development/migrations/2025_06_25_default_export_translation_key.clj +++ b/development/migrations/2025_06_25_default_export_translation_key.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-06-25-default-export-translation-key +(ns ^{:migrate/ignore? true} migrations.2025-06-25-default-export-translation-key (:require [clojure.string :as str] [schema-migrate.interface :as sm] [datomic.api :as d] diff --git a/development/migrations/2025_06_27_add_contain_minimum_fireline_production_rate_search_table.clj b/development/migrations/2025_06_27_add_contain_minimum_fireline_production_rate_search_table.clj index bfe20b58e..a4c5ee4f7 100644 --- a/development/migrations/2025_06_27_add_contain_minimum_fireline_production_rate_search_table.clj +++ b/development/migrations/2025_06_27_add_contain_minimum_fireline_production_rate_search_table.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-06-27-add-contain-minimum-fireline-production-rate-search-table +(ns ^{:migrate/ignore? true} migrations.2025-06-27-add-contain-minimum-fireline-production-rate-search-table (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_06_30_update_mortality_pivot_table.clj b/development/migrations/2025_06_30_update_mortality_pivot_table.clj index 77ee96af3..93718450b 100644 --- a/development/migrations/2025_06_30_update_mortality_pivot_table.clj +++ b/development/migrations/2025_06_30_update_mortality_pivot_table.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-06-30-update-mortality-pivot-table +(ns ^{:migrate/ignore? true} migrations.2025-06-30-update-mortality-pivot-table (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave.schema.pivot-table :refer [schema]] diff --git a/development/migrations/2025_07_08_add_multi_select_prompt_translations.clj b/development/migrations/2025_07_08_add_multi_select_prompt_translations.clj index e824487ff..4b469ce52 100644 --- a/development/migrations/2025_07_08_add_multi_select_prompt_translations.clj +++ b/development/migrations/2025_07_08_add_multi_select_prompt_translations.clj @@ -1,4 +1,4 @@ -(ns migrations.template +(ns ^{:migrate/ignore? true} migrations.template (:require [schema-migrate.interface :as sm :refer [bp]] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_07_10_update_please_translations.clj b/development/migrations/2025_07_10_update_please_translations.clj index b63e67be8..5f051eef4 100644 --- a/development/migrations/2025_07_10_update_please_translations.clj +++ b/development/migrations/2025_07_10_update_please_translations.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-07-10-update-please-translations +(ns ^{:migrate/ignore? true} migrations.2025-07-10-update-please-translations (:require [schema-migrate.interface :refer [bp] :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_07_11_update_contain_search_table_name.clj b/development/migrations/2025_07_11_update_contain_search_table_name.clj index a77f10aa8..fe389c010 100644 --- a/development/migrations/2025_07_11_update_contain_search_table_name.clj +++ b/development/migrations/2025_07_11_update_contain_search_table_name.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-07-11-update-contain-search-table-name +(ns ^{:migrate/ignore? true} migrations.2025-07-11-update-contain-search-table-name (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_07_16_add_min_max_air_temperature_variable.clj b/development/migrations/2025_07_16_add_min_max_air_temperature_variable.clj index 7e7d158b4..f302254eb 100644 --- a/development/migrations/2025_07_16_add_min_max_air_temperature_variable.clj +++ b/development/migrations/2025_07_16_add_min_max_air_temperature_variable.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-07-16-add-min-max-air-temperature-variable +(ns ^{:migrate/ignore? true} migrations.2025-07-16-add-min-max-air-temperature-variable (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_07_25_spot_torching_trees_action.clj b/development/migrations/2025_07_25_spot_torching_trees_action.clj index 36e521d62..21084f215 100644 --- a/development/migrations/2025_07_25_spot_torching_trees_action.clj +++ b/development/migrations/2025_07_25_spot_torching_trees_action.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-07-25-spot-torching-trees-action +(ns ^{:migrate/ignore? true} migrations.2025-07-25-spot-torching-trees-action (:require [schema-migrate.interface :as sm] [datomic.api :as d] diff --git a/development/migrations/2025_08_03_add_relative_humidity_tool.clj b/development/migrations/2025_08_03_add_relative_humidity_tool.clj index 256145e34..e5661f89d 100644 --- a/development/migrations/2025_08_03_add_relative_humidity_tool.clj +++ b/development/migrations/2025_08_03_add_relative_humidity_tool.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-08-03-add-relative-humidity-tool +(ns ^{:migrate/ignore? true} migrations.2025-08-03-add-relative-humidity-tool (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_08_03_add_safe_separation_distance_calculator.clj b/development/migrations/2025_08_03_add_safe_separation_distance_calculator.clj index 58d5d7cf7..0eb7c73e2 100644 --- a/development/migrations/2025_08_03_add_safe_separation_distance_calculator.clj +++ b/development/migrations/2025_08_03_add_safe_separation_distance_calculator.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-08-03-add-safe-separation-distance-calculator +(ns ^{:migrate/ignore? true} migrations.2025-08-03-add-safe-separation-distance-calculator (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_08_06_add_ui_for_contain_minimial_resource_run.clj b/development/migrations/2025_08_06_add_ui_for_contain_minimial_resource_run.clj index caa8fe01f..43e602e0f 100644 --- a/development/migrations/2025_08_06_add_ui_for_contain_minimial_resource_run.clj +++ b/development/migrations/2025_08_06_add_ui_for_contain_minimial_resource_run.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-08-06-add-ui-for-contain-minimial-resource-run +(ns ^{:migrate/ignore? true} migrations.2025-08-06-add-ui-for-contain-minimial-resource-run (:require [schema-migrate.interface :as sm] [datomic.api :as d] [datascript.core :refer [squuid]] diff --git a/development/migrations/2025_09_17_update_ssd_tool.clj b/development/migrations/2025_09_17_update_ssd_tool.clj index b843d21af..47bc78253 100644 --- a/development/migrations/2025_09_17_update_ssd_tool.clj +++ b/development/migrations/2025_09_17_update_ssd_tool.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-09-17-update-ssd-tool +(ns ^{:migrate/ignore? true} migrations.2025-09-17-update-ssd-tool (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_09_23_refactor_disabled_multi_valued_input_attr.clj b/development/migrations/2025_09_23_refactor_disabled_multi_valued_input_attr.clj index 817d453a2..751fbff30 100644 --- a/development/migrations/2025_09_23_refactor_disabled_multi_valued_input_attr.clj +++ b/development/migrations/2025_09_23_refactor_disabled_multi_valued_input_attr.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-09-23-refactor-disabled-multi-valued-input-attr +(ns ^{:migrate/ignore? true} migrations.2025-09-23-refactor-disabled-multi-valued-input-attr (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave.schema.core :refer [rules]] diff --git a/development/migrations/2025_10_01_update_ssd_colors.clj b/development/migrations/2025_10_01_update_ssd_colors.clj index e6bc6ee53..c4708bc3a 100644 --- a/development/migrations/2025_10_01_update_ssd_colors.clj +++ b/development/migrations/2025_10_01_update_ssd_colors.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-10-01-update-ssd-colors +(ns ^{:migrate/ignore? true} migrations.2025-10-01-update-ssd-colors (:require [datomic.api :as d] [behave-cms.store :refer [default-conn]] [behave-cms.server :as cms])) diff --git a/development/migrations/2025_10_02_spot_enable_flame_length_only_active_crown.clj b/development/migrations/2025_10_02_spot_enable_flame_length_only_active_crown.clj index c9f32315e..7a8abd9dd 100644 --- a/development/migrations/2025_10_02_spot_enable_flame_length_only_active_crown.clj +++ b/development/migrations/2025_10_02_spot_enable_flame_length_only_active_crown.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-10-02-spot-enable-flame-length-only-active-crown +(ns ^{:migrate/ignore? true} migrations.2025-10-02-spot-enable-flame-length-only-active-crown (:require [schema-migrate.interface :refer [bp] :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_10_10_add_english_metric_list_option_translation_keys.clj b/development/migrations/2025_10_10_add_english_metric_list_option_translation_keys.clj index e3141b4f0..ca138923c 100644 --- a/development/migrations/2025_10_10_add_english_metric_list_option_translation_keys.clj +++ b/development/migrations/2025_10_10_add_english_metric_list_option_translation_keys.clj @@ -1,4 +1,4 @@ -(ns migrations.205-10-10-add-english-metric-translation-keys +(ns ^{:migrate/ignore? true} migrations.205-10-10-add-english-metric-translation-keys (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_10_10_hide_graphs.clj b/development/migrations/2025_10_10_hide_graphs.clj index 218553169..75537c4ad 100644 --- a/development/migrations/2025_10_10_hide_graphs.clj +++ b/development/migrations/2025_10_10_hide_graphs.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-10-10-hide-graphs +(ns ^{:migrate/ignore? true} migrations.2025-10-10-hide-graphs (:require [schema-migrate.interface :refer [bp] :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_10_14_set_vpd_dynamic_units.clj b/development/migrations/2025_10_14_set_vpd_dynamic_units.clj index 1533bd8ed..794cab67d 100644 --- a/development/migrations/2025_10_14_set_vpd_dynamic_units.clj +++ b/development/migrations/2025_10_14_set_vpd_dynamic_units.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-10-14-set-vpd-dynamic-units +(ns ^{:migrate/ignore? true} migrations.2025-10-14-set-vpd-dynamic-units (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_11_12_add_fire_shape_diagram.clj b/development/migrations/2025_11_12_add_fire_shape_diagram.clj index 5968bf4b1..30a5795e4 100644 --- a/development/migrations/2025_11_12_add_fire_shape_diagram.clj +++ b/development/migrations/2025_11_12_add_fire_shape_diagram.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-11-12-add-fire-shape-diagram +(ns ^{:migrate/ignore? true} migrations.2025-11-12-add-fire-shape-diagram (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_12_15_update_slope_tool.clj b/development/migrations/2025_12_15_update_slope_tool.clj index 851f54d24..8a9b1f18f 100644 --- a/development/migrations/2025_12_15_update_slope_tool.clj +++ b/development/migrations/2025_12_15_update_slope_tool.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-12-15-update-slope-tool +(ns ^{:migrate/ignore? true} migrations.2025-12-15-update-slope-tool (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_12_17_fix_direction_of_spread_precision.clj b/development/migrations/2025_12_17_fix_direction_of_spread_precision.clj index ab79d8961..53372d4ba 100644 --- a/development/migrations/2025_12_17_fix_direction_of_spread_precision.clj +++ b/development/migrations/2025_12_17_fix_direction_of_spread_precision.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-12-17-fix-direction-of-spread-precision +(ns ^{:migrate/ignore? true} migrations.2025-12-17-fix-direction-of-spread-precision (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_12_22_add_missing_fuel_moisture_conditionals.clj b/development/migrations/2025_12_22_add_missing_fuel_moisture_conditionals.clj index 4ecbad667..84af82f98 100644 --- a/development/migrations/2025_12_22_add_missing_fuel_moisture_conditionals.clj +++ b/development/migrations/2025_12_22_add_missing_fuel_moisture_conditionals.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-12-22-add-missing-fuel-moisture-conditionals +(ns ^{:migrate/ignore? true} migrations.2025-12-22-add-missing-fuel-moisture-conditionals (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2025_hide_diagrams_from_results_table.clj b/development/migrations/2025_hide_diagrams_from_results_table.clj index 64fe90a4e..5e01c968a 100644 --- a/development/migrations/2025_hide_diagrams_from_results_table.clj +++ b/development/migrations/2025_hide_diagrams_from_results_table.clj @@ -1,4 +1,4 @@ -(ns migrations.2025-hide-diagrams-from-results-table +(ns ^{:migrate/ignore? true} migrations.2025-hide-diagrams-from-results-table (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2026_01_13_add_conditionals_to_spot_input_flame_length.clj b/development/migrations/2026_01_13_add_conditionals_to_spot_input_flame_length.clj index 8434a479e..60b42b3cb 100644 --- a/development/migrations/2026_01_13_add_conditionals_to_spot_input_flame_length.clj +++ b/development/migrations/2026_01_13_add_conditionals_to_spot_input_flame_length.clj @@ -1,4 +1,4 @@ -(ns migrations.2026-01-13-add-conditionals-to-spot-input-flame-length +(ns ^{:migrate/ignore? true} migrations.2026-01-13-add-conditionals-to-spot-input-flame-length (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2026_01_20_add_multi_valued_input_error_translation.clj b/development/migrations/2026_01_20_add_multi_valued_input_error_translation.clj index 5a82eb25e..6d0e34814 100644 --- a/development/migrations/2026_01_20_add_multi_valued_input_error_translation.clj +++ b/development/migrations/2026_01_20_add_multi_valued_input_error_translation.clj @@ -1,4 +1,4 @@ -(ns migrations.2026-01-20-add-multi-valued-input-error-translation +(ns ^{:migrate/ignore? true} migrations.2026-01-20-add-multi-valued-input-error-translation (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2026_01_20_spot_active_crown_flame_length.clj b/development/migrations/2026_01_20_spot_active_crown_flame_length.clj index 23c1f118c..44bc4ecc1 100644 --- a/development/migrations/2026_01_20_spot_active_crown_flame_length.clj +++ b/development/migrations/2026_01_20_spot_active_crown_flame_length.clj @@ -1,4 +1,4 @@ -(ns migrations.2026-01-20-spot-active-crown-flame-length +(ns ^{:migrate/ignore? true} migrations.2026-01-20-spot-active-crown-flame-length (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2026_01_22_fix_erroneous_subgroup_downwind_canopy_height.clj b/development/migrations/2026_01_22_fix_erroneous_subgroup_downwind_canopy_height.clj index d1ac1c32a..3d03985fd 100644 --- a/development/migrations/2026_01_22_fix_erroneous_subgroup_downwind_canopy_height.clj +++ b/development/migrations/2026_01_22_fix_erroneous_subgroup_downwind_canopy_height.clj @@ -1,4 +1,4 @@ -(ns migrations.2026-01-22-fix-erroneous-subgroup-downwind-canopy-height +(ns ^{:migrate/ignore? true} migrations.2026-01-22-fix-erroneous-subgroup-downwind-canopy-height (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2026_02_03_add_results_order_attr.clj b/development/migrations/2026_02_03_add_results_order_attr.clj index 9faf005b5..d589c5f36 100644 --- a/development/migrations/2026_02_03_add_results_order_attr.clj +++ b/development/migrations/2026_02_03_add_results_order_attr.clj @@ -1,4 +1,4 @@ -(ns migrations.2026-02-03-add-results-order-attr +(ns ^{:migrate/ignore? true} migrations.2026-02-03-add-results-order-attr (:require [behave-cms.server :as cms] [behave-cms.store :refer [default-conn]] [datomic.api :as d] diff --git a/development/migrations/2026_02_05_delete_erroneous_group_variable_entity.clj b/development/migrations/2026_02_05_delete_erroneous_group_variable_entity.clj index 739810edf..79eaadbe8 100644 --- a/development/migrations/2026_02_05_delete_erroneous_group_variable_entity.clj +++ b/development/migrations/2026_02_05_delete_erroneous_group_variable_entity.clj @@ -1,4 +1,4 @@ -(ns migrations.2026-02-05-delete-erroneous-group-variable-entity +(ns ^{:migrate/ignore? true} migrations.2026-02-05-delete-erroneous-group-variable-entity (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2026_02_13_add_diagram_units_uuid.clj b/development/migrations/2026_02_13_add_diagram_units_uuid.clj index 8599c2ab5..62524d7c2 100644 --- a/development/migrations/2026_02_13_add_diagram_units_uuid.clj +++ b/development/migrations/2026_02_13_add_diagram_units_uuid.clj @@ -1,4 +1,4 @@ -(ns migrations.2026-02-13-add-diagram-units-uuid +(ns ^{:migrate/ignore? true} migrations.2026-02-13-add-diagram-units-uuid (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2026_03_03_add_direction_variables_attr_to_group_variables.clj b/development/migrations/2026_03_03_add_direction_variables_attr_to_group_variables.clj index fadb82206..feaaf9281 100644 --- a/development/migrations/2026_03_03_add_direction_variables_attr_to_group_variables.clj +++ b/development/migrations/2026_03_03_add_direction_variables_attr_to_group_variables.clj @@ -1,4 +1,4 @@ -(ns migrations.2026-03-03-add-direction-variables-attr-to-group-variables +(ns ^{:migrate/ignore? true} migrations.2026-03-03-add-direction-variables-attr-to-group-variables (:require [behave-cms.server :as cms] [behave-cms.store :refer [default-conn]] [datascript.core :refer [squuid]] diff --git a/development/migrations/2026_03_21_hide_waf_for_spot_only.clj b/development/migrations/2026_03_21_hide_waf_for_spot_only.clj index bb0e948fe..bdbe8a0af 100644 --- a/development/migrations/2026_03_21_hide_waf_for_spot_only.clj +++ b/development/migrations/2026_03_21_hide_waf_for_spot_only.clj @@ -1,4 +1,4 @@ -(ns migrations.2026-03-21-hide-waf-for-spot-only +(ns ^{:migrate/ignore? true} migrations.2026-03-21-hide-waf-for-spot-only (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2026_03_24_add_conditionals_to_default_heading_if_missing.clj b/development/migrations/2026_03_24_add_conditionals_to_default_heading_if_missing.clj index a5af61c05..1d5ff5cb1 100644 --- a/development/migrations/2026_03_24_add_conditionals_to_default_heading_if_missing.clj +++ b/development/migrations/2026_03_24_add_conditionals_to_default_heading_if_missing.clj @@ -1,4 +1,4 @@ -(ns migrations.2026-03-24-add-conditionals-to-default-heading-if-missing +(ns ^{:migrate/ignore? true} migrations.2026-03-24-add-conditionals-to-default-heading-if-missing (:require [behave-cms.server :as cms] [behave-cms.store :refer [default-conn]] [datomic.api :as d] diff --git a/development/migrations/2026_03_25_add_torching_trees_subgroups.clj b/development/migrations/2026_03_25_add_torching_trees_subgroups.clj index a21cd70ec..a5c4433e0 100644 --- a/development/migrations/2026_03_25_add_torching_trees_subgroups.clj +++ b/development/migrations/2026_03_25_add_torching_trees_subgroups.clj @@ -1,4 +1,4 @@ -(ns migrations.2026-03-25-add-torching-trees-subgroups +(ns ^{:migrate/ignore? true} migrations.2026-03-25-add-torching-trees-subgroups (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2026_04_09_add_fire_type_color_tag_set.clj b/development/migrations/2026_04_09_add_fire_type_color_tag_set.clj index 3baf2fc60..4d6bc4e5a 100644 --- a/development/migrations/2026_04_09_add_fire_type_color_tag_set.clj +++ b/development/migrations/2026_04_09_add_fire_type_color_tag_set.clj @@ -1,4 +1,4 @@ -(ns migrations.2026-04-09-add-fire-type-color-tag-set +(ns ^{:migrate/ignore? true} migrations.2026-04-09-add-fire-type-color-tag-set (:require [behave-cms.server :as cms] [behave-cms.store :refer [default-conn]] [datomic.api :as d] diff --git a/development/migrations/2026_04_21_add_note_categories.clj b/development/migrations/2026_04_21_add_note_categories.clj index 157119017..3cc01b3fb 100644 --- a/development/migrations/2026_04_21_add_note_categories.clj +++ b/development/migrations/2026_04_21_add_note_categories.clj @@ -1,4 +1,4 @@ -(ns migrations.2026-04-21-add-note-categories +(ns ^{:migrate/ignore? true} migrations.2026-04-21-add-note-categories (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/2026_04_28_link_directions_to_fire_direction.clj b/development/migrations/2026_04_28_link_directions_to_fire_direction.clj index d1c128bcd..acf4465dc 100644 --- a/development/migrations/2026_04_28_link_directions_to_fire_direction.clj +++ b/development/migrations/2026_04_28_link_directions_to_fire_direction.clj @@ -1,4 +1,4 @@ -(ns migrations.2026-04-28-link-directions-to-fire-direction +(ns ^{:migrate/ignore? true} migrations.2026-04-28-link-directions-to-fire-direction (:require [behave-cms.server :as cms] [behave-cms.store :refer [default-conn]] [clojure.string :as str] diff --git a/development/migrations/2026_05_18_set_calculator_variable_min_max.clj b/development/migrations/2026_05_18_set_calculator_variable_min_max.clj index d342fd034..df4472002 100644 --- a/development/migrations/2026_05_18_set_calculator_variable_min_max.clj +++ b/development/migrations/2026_05_18_set_calculator_variable_min_max.clj @@ -1,4 +1,4 @@ -(ns migrations.2026-05-18-set-calculator-variable-min-max +(ns ^{:migrate/ignore? true} migrations.2026-05-18-set-calculator-variable-min-max (:require [behave-cms.server :as cms] [behave-cms.store :refer [default-conn]] [datomic.api :as d] diff --git a/development/migrations/2026_05_19_always_enable_dead_fuel_moisture.clj b/development/migrations/2026_05_19_always_enable_dead_fuel_moisture.clj new file mode 100644 index 000000000..74f64691d --- /dev/null +++ b/development/migrations/2026_05_19_always_enable_dead_fuel_moisture.clj @@ -0,0 +1,89 @@ +(ns migrations.2026-05-19-always-enable-dead-fuel-moisture + (:require [schema-migrate.interface :as sm] + [datomic.api :as d])) + +;; =========================================================================================================== +;; Overview +;; =========================================================================================================== + +;; BHP1-1566: When a user selects Dead, Live Herb, and Live Woody Categories +;; as their Fuel Moisture Input Mode, always show the Dead Fuel Moisture +;; category whenever the Max Spotting Distance from Wind-Driven Surface Fire +;; output is selected. +;; +;; The Dead Fuel Moisture group currently has an `:or`'d conditional gated on +;; the wind-driven fuel-model code (`:in ["103" "108" "109"]`), which leaves +;; the input hidden for other wind-driven fuels (FB1/1, FB3/3, GR1/101, +;; GR2/102). We retract that conditional and replace it with one keyed on the +;; WDSF output checkbox so the input shows whenever that output is requested. + +;; =========================================================================================================== +;; Payload +;; =========================================================================================================== + +(def ^:private group-t-key + "behaveplus:surface:input:fuel_moisture:dead-live-herb-and-live-woody-categories:dead-fuel-moisture") + +(def ^:private wind-driven-fuel-model-gv-t-key + "behaveplus:surface:input:fuel_models:standard:wind-driven-fuel-model:wind-driven-fuel-model") + +(def ^:private wdsf-output-gv-t-key + "behaveplus:surface:output:spot:maximum_spotting_distance:wind_driven_surface_fire") + +#_{:clj-kondo/ignore [:missing-docstring]} +(defn payload-fn [conn] + (let [db (d/db conn) + group-eid (d/q '[:find ?g . + :in $ ?tk + :where [?g :group/translation-key ?tk]] + db group-t-key) + old-cond (d/q '[:find ?c . + :in $ ?group ?wd-tk + :where + [?group :group/conditionals ?c] + [?wd :group-variable/translation-key ?wd-tk] + [?wd :bp/uuid ?wd-uuid] + [?c :conditional/group-variable-uuid ?wd-uuid]] + db group-eid wind-driven-fuel-model-gv-t-key) + wdsf-uuid (d/q '[:find ?u . + :in $ ?tk + :where + [?gv :group-variable/translation-key ?tk] + [?gv :bp/uuid ?u]] + db wdsf-output-gv-t-key)] + (cond-> [] + old-cond (conj [:db/retractEntity old-cond]) + wdsf-uuid (into (let [tempid -1 + new-cond (-> (sm/->conditional + conn + {:ttype :group-variable + :operator :equal + :values ["true"] + :group-variable-uuid wdsf-uuid}) + (assoc :db/id tempid))] + [new-cond + [:db/add group-eid :group/conditionals tempid]]))))) + +;; =========================================================================================================== +;; Manual REPL usage +;; =========================================================================================================== + +(comment + (require '[behave-cms.server :as cms] + '[behave-cms.store :as store]) + + (cms/init-db!) + + #_{:clj-kondo/ignore [:missing-docstring]} + (def conn (store/default-conn)) + + #_{:clj-kondo/ignore [:missing-docstring]} + (try (def tx-data @(d/transact conn (payload-fn conn))) + (catch Exception e (str "caught exception: " (.getMessage e))))) + +;; =========================================================================================================== +;; Rollback +;; =========================================================================================================== + +(comment + (sm/rollback-tx! conn tx-data)) diff --git a/development/migrations/2026_add_character_limit_exceeded_error_msg.clj b/development/migrations/2026_add_character_limit_exceeded_error_msg.clj index 2f85a510d..c1039d23f 100644 --- a/development/migrations/2026_add_character_limit_exceeded_error_msg.clj +++ b/development/migrations/2026_add_character_limit_exceeded_error_msg.clj @@ -1,4 +1,4 @@ -(ns migrations.2026-add-character-limit-exceeded-error-msg +(ns ^{:migrate/ignore? true} migrations.2026-add-character-limit-exceeded-error-msg (:require [schema-migrate.interface :as sm] [datomic.api :as d] [behave-cms.store :refer [default-conn]] diff --git a/development/migrations/template.clj b/development/migrations/template.clj index c15969b57..e8ad629bf 100644 --- a/development/migrations/template.clj +++ b/development/migrations/template.clj @@ -1,40 +1,51 @@ (ns migrations.template (:require [schema-migrate.interface :as sm] - [datomic.api :as d] - [behave-cms.store :refer [default-conn]] - [behave-cms.server :as cms])) + [datomic.api :as d])) ;; =========================================================================================================== ;; Overview ;; =========================================================================================================== -;; =========================================================================================================== -;; Initialize -;; =========================================================================================================== - -(cms/init-db!) - -#_{:clj-kondo/ignore [:missing-docstring]} -(def conn (default-conn)) +;; Describe what this migration does and why. ;; =========================================================================================================== ;; Payload ;; =========================================================================================================== +;; Option A: Single-step migration +;; The runner calls (payload-fn conn) at startup. +;; Return a vector of transaction data. + #_{:clj-kondo/ignore [:missing-docstring]} -(def payload []) +(defn payload-fn [conn] + []) + +;; Option B: Multi-step migration (uncomment and remove payload-fn above) +;; Each step is a function of conn (or a raw payload vector). +;; If any step fails, all previously completed steps are rolled back. +;; +;; #_{:clj-kondo/ignore [:missing-docstring]} +;; (def payload-steps +;; [(fn [conn] [{:db/id (sm/t-key->eid conn "behaveplus:...") :group/order 0}]) +;; (fn [conn] [[:db/retractEntity (sm/t-key->eid conn "behaveplus:...")]])]) ;; =========================================================================================================== -;; Transact Payload +;; Manual REPL usage ;; =========================================================================================================== (comment + (require '[behave-cms.server :as cms]) + (cms/init-db!) + + #_{:clj-kondo/ignore [:missing-docstring]} + (def conn (behave-cms.store/default-conn)) + #_{:clj-kondo/ignore [:missing-docstring]} - (try (def tx-data @(d/transact conn payload)) - (catch Exception e (str "caught exception: " (.getMessage e))))) + (try (def tx-data @(d/transact conn (payload-fn conn))) + (catch Exception e (str "caught exception: " (.getMessage e))))) ;; =========================================================================================================== -;; In case we need to rollback. +;; Rollback. ;; =========================================================================================================== (comment diff --git a/projects/behave_cms/src/clj/behave_cms/store.clj b/projects/behave_cms/src/clj/behave_cms/store.clj index 14eecb7e3..a2e73bfba 100644 --- a/projects/behave_cms/src/clj/behave_cms/store.clj +++ b/projects/behave_cms/src/clj/behave_cms/store.clj @@ -1,7 +1,8 @@ (ns behave-cms.store - (:require [behave.schema.core :refer [all-schemas]] - [datomic-store.main :as s] - [config.interface :refer [get-config]])) + (:require [behave.schema.core :refer [all-schemas]] + [datomic-store.main :as s] + [schema-migrate.interface :as sm] + [config.interface :refer [get-config]])) (defn connect! "Connects to datomic DB given `db-config`. @@ -12,7 +13,9 @@ (s/reset-db! db-config all-schemas) (s/default-conn db-config all-schemas - #(s/migrate! % all-schemas) + (fn [conn] + (s/migrate! conn all-schemas) + (sm/run-pending-migrations! conn "development/migrations")) [:bp/migration-id]))) (defn default-conn