Photo by Amanda Pinion (2026). KUBI Ichthyology Collection. University of Kansas Biodiversity Institute. Occurrence on GBIF.
Specify 7.12.0.7 Release Announcement
We’re pleased to announce Specify 7.12.0.7, a patch release focused on migration reliability, data integrity, and performance. This update hardens the schema migration system with fixes for reversibility across multiple schema versions, corrects tree definition and discipline pairing logic, strengthens safeguards around uniqueness rules with immutable schema defaults, and improves localized string deduplication and remote preferences security.
Some major improvements include restored data model relationships for attachments, fixes to the regex field formatter, consistent model capitalization across schema config labels, proper pick list creation for new collections, tree query performance enhancements, and paleo discipline visibility corrections.
7.12.0.7 (28 July 2026)
Updated
- The International Chronostratigraphic Chart graphic, published by the International Commission on Stratigraphy, has been updated to version
2026/06(#8248)- The default data for the Chronostratigraphy tree (
GeologicTimePeriod) has been updated to reflect these new values.
- The default data for the Chronostratigraphy tree (
Fixed
- Improves the initial database setup script (#8156)
- More reliable DB provisioning, privilege verification and clearer failure diagnostics.
- Fixed single-use-iterable bug affecting uniqueness rule creation.
- Improved legacy-permissions detection and safer role/user assignment during initialization.
- Startup validates DB alias and logs connection fallbacks.
- Migration initialization now respects override behavior; container startup can skip automatic migrations.
- Credentials/config now come from environment variables with chained defaults.
- Setup scripts run in stricter shell mode for safer execution.
- Schema config and migration fixes (#8154)
- Fixes model capitalizations and case sensitivity issues across schema config table labels and descriptions
- Fixes Picklist Type filtering to use the correct type during database migrations
- Fixes an issue where
SpLocaleItemStrrecords were not created when generating Schema Config records for tables - Fixes incorrect Discipline to TectonicUnit tree definition pairing when resolving links
- Fixes handling of synonymized root nodes during tree reverse migrations
- Fixes handling of custom Tectonic Unit trees when reverting migrations
- Fixes a case where the business rules app was not ready but migrations attempted to run
- Fixes
MultipleObjectsReturnederrors by simplifying exception handling during schema repairs - Fixes localized string deduplication to scope by language, preventing cross-language string conflicts
- Fixes catalog-number uniqueness shadowing in collection functions during migration
- Fixes the
DisciplineTypePickList being created when creating a new Collection - Fixes
DisciplineTypepicklist assignment for newly created Disciplines - Fixes partially migrated disciplines that could not be repaired due to exclusion logic
- Fixes reuse prevention when pairing tree definitions with disciplines
- Fixes discipline tree definition links being set before skipping rank creation
- Fixes several schema migration reversibility issues (0021, 0023, 0027, 0033, 0040) to ensure safe rollbacks
- Fixes
reverse_hide_component_fieldsdefaulting incorrectly - Fixes a typo in the
UserRoledescription - Fixes component catalog number cache typing for consistency
- Fixes an issue where
SP7_DEBUGwas not correctly set in all environments - Fixes validation of
AUDIT_LIFESPAN_MONTHSbefore executing purge SQL to prevent unsafe operations - Fixes key escaping when fetching remote preferences to prevent injection vulnerabilities
- Fixes comparison of full uniqueness rule definitions before deletion to prevent data loss
- Fixes an issue where existing rows were not flipped back to
isDatabaseConstraint=Truewhere needed - Fixes the
Migratoruser being used for all migration key operations - Fixes the
is_sp6_user_permissions_migratedcheck being re-introduced for proper legacy permission handling - Fixes database connection handling to use the correct alias for migration connections
- Fixes
set_discipline_for_taxon_treedefsbeing reduced to a single database query for improved performance - Fixes
fix_taxon_treedef_discipline_linksbeing optimized to a single query for improved performance - Fixes admin check ordering to evaluate common cases first for faster permission checks
- Fixes use of Django defaults in
get_or_createfor Role creation - Fixes database connection used as a context manager for permission operations
- Fixes
fix_global_ruleshelper function being simplified for better migration performance
- Fixes missing data model relationships for attachments that could cause issues with record linking (#8182)
- Regex field-formatter fixes (#8152)
- Fixes expression boundary markers being incorrectly inserted
- Fixes handling of outer parentheses in regex expressions
- Fixes regex trimming to intelligently handle ambiguous patterns
- Adds
ariaLabelandplaceholderattributes for improved accessibility
- Schema config defaults hardening (#8329)
- Introduces
SchemaWriterandSchemaReaderutility classes for consistent and optimized schema config operations - Introduces
ReadonlyDictto prevent accidental mutation of schema default values, ensuring migration predictability - Fixes
QueryValueslist flattening in migrations 0035 and 0040 - Fixes case-insensitive lookups in schema config helper functions
- Improves fallback logic to use
schema_localization_en.jsondefaults when generating localized strings - Ensures all passed-in default values are always respected during schema config creation
- Eliminates redundant database hits when creating Schema Config records sequentially
- Introduces
- Database setup and permissions hardening (#8313)
- Reverts automatic migrator privilege grants when the user already exists to avoid permission conflicts
- Prevents access to collections belonging to disciplines that are still being created
- Fixes regular expressions used when checking database permissions
- Defaults
DATABASE_PORTto 3306 for more reliable out-of-the-box configuration - Removes unused environment variables and host configuration from default
.env - Fixes character escaping and host direction when creating database users
- Batch edit fixes (#8317)
- Disables attachment relationships in batch edit mode to prevent invalid record linking
- Tree management improvements (#8312, #8243)
- Paleo discipline visibility fixes
- Unhides PaleoContext, Chronostrat, and Lithostrat trees by default in paleo disciplines (Geology, InvertPaleo, Paleobotany, VertPaleo)
- Fixes tree visibility and table descriptions across all disciplines for consistency
- Fixes incorrect picklist name for Determination → nameUsages
- Fixes null
catalogNumberformat specification
- Migration test suite (#8225)
- Adds test coverage for
run_key_migration_functionsand discipline directory cleanup functions - Removes reliance on mocking in several migration tests for more reliable validation
- Adds test coverage for
The full changelog is available on GitHub
For source code go to the GitHub Specify 7 repository
For more information about Specify 7, or about this release, see Specify 7 | Specify Collections Consortium, or email support@specifysoftware.org.
