Skip to main content

Connexions Database Library

Project description

Connexions Database Library

View the documentation on the Read the Docs site.


This software is subject to the provisions of the GNU Affero General Public License Version 3.0 (AGPL). See license.txt for details. Copyright (c) 2016 Rice University

Change Log


  • Merge pull request #194 from openstax/933-remove-transform-migration - pin lint dependencies to versions that passed in last build of master - setuptools>=45 breaks python 2.7 build for travis. Setting different installs for setuptools for python 2 and 3 - added pip install -upgrade pip to .travis.yml file in before_install step - Removed from migrations

  • Merge pull request #193 from openstax/cnx-stack-compose - Add script to create legacy user w/ passwd for dev purposes - Accept explicit and multiple values for table unique key - Attempt to not insert when a duplicate pkey is found - Bump sequences to max pkey value to avoid conflicts

  • Remove upload pypi step in Jenkinsfile (#192)


  • Add twine check on travis (#190)

  • Separate db_tables function and fixture for reuse (#191)


  • Rebake only latest openstax books in transforms migration (#189)


  • Documentation for the database triggers (#188)

  • Rebake books in cnxml-to-html transforms migration (#187)


  • Fix empty collated file associations in (#185)

  • Pin docutils to 0.14 in requirements/lint.txt (#186)

  • Repeat populate tree slug migration

  • Add cache purging code to populate trees slug migration

  • Update to require cnx-common>=1.2.1


  • Move ident-hash parsing functionality to cnx-common (#180)

  • Purge varnish cache after transforms (#181)

  • Add script/ to dump/load a book from db (#183)

  • SQL queries for xpath search (#182)


  • Add a column for the REX URL slug (#178)

  • Include the slug value in tree_to_json results (#179)


  • Exclude tests in find_packages() in (#175)


  • Split transforms (cnxml->html,html->cnxml) code into a new package, cnx-transforms. The cnx-transforms package is now a dependency of this project.


  • Move ident hash code to cnx-db (#625)

  • Adjust container setup (#173)

  • Add replace_collxml function (#171)


  • various build-system infrastructure changes (yay Jenkins)

  • functions for explicitly setting canonical for all pages in a book


  • collxml generator function fixes


  • more migration script bugfixes


  • bugfix in db migration script (need db superuser)


  • Jenkins CI framework and initial support

  • Generate collexion.xml files for new (minor rev) collections that do not have them.


  • bugfix in a db migration script - no production impact


  • Support for canonical book per page - uuid


  • Added columns to legacy persons table to hold authentication info


  • Fixup function ownership on production DBs (production and synced from there)





  • Add database indices and modify the fulltext trigger to set different weights to tsvectors based on whether they are generated on titles, keywords or text.


  • Add an index to dramatically speed up /contents/<book-id>@ver:<pageid>@ver


  • Add a SQL query to obtain the ‘head’ version of content. The head is the last publication made for that content regardless of whether it is in a publicly viewable state.


  • Adds fulltext search fixes and speedups.


  • Fix the documentation for Pyramid integration properties.

  • Fix the HTML reference resolver for cases where the moduleid is found in the resource filename.


  • Transition the following Pyramid integration properties: registry.engines and registry.tables. These are now moved to request.get_db_engine() and request.db_tables. This favors the recommended pattern of using request methods and attributes for hooking into the current thread local variable space.


  • Fix shred_collxml code to insert the trees.latest value. The fix includes a migration to ensure all trees.latest values are set to true, which should be the casee for all legacy content. See for issue details.


  • Pin to a specific version of sesssion_exec when testing.

  • Allow the Google Analytics (GA) code column to stay the same type, but contain multiple GA codes. Adjustments to queries make this an array of GA codes based on space separated list of codes.

  • Adjust the books containing this page query to: - Provide a sorted list of authors and the detailed person info - Provide the shortid


  • Remove the DB_NAME environment variable from the container definition. This appears to have become redundant with the POSTGRES_DB variable.

  • Fix .dockerfiles/initdb.d/ to look for *.sql and *.sql.gz files in the docker entrypoint directory rather than the current working directory.


  • Simplify slim dump import into docker container

    • Rename .dockerfiles/initdb.d/ to

    • Don’t run cnx-db init if *.sql or *.sql.gz exist

    • Remove .dockerfiles/initdb.d/

    • Set POSTGRES_DB to the same as DB_NAME

  • Add the baked and print-style columns to the module metadata query.


  • Massage testing fixtures to better facilitate testing in packages using this package.

    • Provide additional init and wipe fixtures scoped at the module level.

    • Remove custom function for table name lookup. Replaced by sqlalchemy Inspector methods.

    • Add a db_tables pytest fixture that supplies sqlalchemy table objects.


  • Add a new baking state, known as ‘fallback’, that allows content to remain in a success state even when the latest print-style won’t work with the content.

  • Fix the primary key on the print_style_recipes table.

  • Provide docs for using the Pyramid Web Framework with this package.

  • Add a database tables definition to the pyramid integration. This places a tables attribute on the registry. The attribute contains sqlalchemy table definitions that are reflected from the existing database schema.


  • Fix settings discovery to use the given settings value for ‘db.common.url’ when the DB_URL environment variable is undefined.

  • Add a read-only database setting to allow for read-only database connections. The setting is available through the DB_READONLY_URL environment variable.


  • Touchup the docstrings for database init funcs (#99)

  • Add an integration point for the pyramid web framework (#98)

  • Update documentation headers and contrib module api docs (#97)


  • Migrate transform triggers logic to this package from cnx-archive (#86)

  • Ignore artifacts of running

  • Run non-continous integration runs of quietly

  • Fix docker-compose to use env vars


  • Change pg_dump to use $DB_URL in ci_test_migrations

  • Change dbmigrator commands to use $DB_URL in ci_test_migrations

  • Use $DB_URL in

  • Fix triggers test to use raw connection string

  • Remove all connection string uses in favor of URL

  • Move to using a URL rather than connection string

  • Add prepare function for scripting env preparation

  • Add a function to discover environment settings

  • a view of all most recent content, regardless of baked state

  • Correct code coverage configuration (#94)

  • Ignore linting of build and dist directories (#89)

  • Wrap lines in docs/changes.rst (#90)


  • In book search to provide query_type parameterization for AND vs OR queries (#87)

  • Fix number of migrations to rollback in

  • get only the highest version for each book a page is in, return full ident_hash, as well as authors. Put same-as-page-authors first, since this is likely to be the orginal book the page was published in. Returned as list of hashes in page content-extras

  • Correct project testing requirements to also use main.txt (#85)

  • Fix update latest trigger not adding new modules

  • make in book search OR terms, rather than AND them

  • do not use timestamps to determine latest content (#75)

  • Add migration for print_style_recipes (#80)

  • Make lexeme removal migration idempotent (#82)

  • Fix print_style_recipe trigger definition to align with the migration (#81)

  • Provide book full text search (#78)


  • Revert changes to triggers for derived content

    • Remove fix for derived_book_ruleset sql function by returning a value (#67)

    • Remove addition of trigger for duplicating rulset.css for derived copies (#56)


  • Fix to ignore stateid when copying subcollections to avoid adding subcollections to the post-publication queue (#73)


  • Use postgres super user in migrations that require it (#71)

  • Correct errors in subcol uuid migration associated with an empty batch (#70)


  • Fix in-collated-book page search sql query (#68)

  • Add a matching migration for the double-trigger-when-rebaking fix (#69)

  • Fix derived_book_ruleset sql function by returning a value (#67 #66)


  • Add query to get latest version of the content (#64)

  • Use super user to replace plpythonu function in migration (#62)

  • Add migration to transform cnxml->html (#59)

  • Add delete cascade and indexes for foreign keys (#58)

  • Add data migration to update index.cnxml (#61)

  • Add trigger for duplicating rulset.css for derived copies (#56)

  • Add subcollection uuid data migration (#54)

  • Fix minor versions and current_modules view (#49)

  • Add xpath queries (#40)


  • Add AS_VENV_IMPORTABLE env variable to the pytest db_init fixture.

  • Fix load in init_venv before using it.

  • Fix order of dependency installation to account for the current circular dependence with cnx-archive.

  • Fix quoting within the container’s initdb script

  • Add docker entrypoint script to load database dump.

  • Fix Dockerfile initdb.d COPY command.

  • Fix requirements filename change in Dockerfile

  • Fix rebake trigger to do nothing when the content is already in a bakable state.

  • Lock latest_modules when running update_latest where two or more inserts may happen at the same time.

  • Fix update_latest trigger to account for multiple minor versions where one or more may have failed during baking.

  • Add sql queries for getting books containing a page.


  • Add tables and triggers to store recipes associated with print-styles.


  • Add association table for celery results to documents.


  • Share this project’s pytest fixtures for use in dependent projects.

  • Create the cnxdb.contrib package.

  • Fix to exclude subcollections from the search query.


  • Fix to only create the moduletags index when it does not exist.


  • Add an index for moduletags to improve search.


  • Fix to speedup in-book search for baked content.


  • Include a migration for the post_publication channel payload change.


  • Add a payload to the post_publication channel notification.

  • Fix tests by explicitly including cnx-archive.

  • Fix tests to only run trigger tests within Python 2.7.


  • Add a Make recipe for building and serving this project/component.

  • Correct styling, documentation and test running code.

  • Add the Make interface for common developer tasks.

  • Install versioneer for version management via git.

  • Add SQL function and trigger to rebake on baking recipe insert or update.

  • Update SQL manifest to add subcollection uuid SQL functions.


  • Adjust SQL functions declarations to idempotent declarations.

  • Add SQL functions and indexes for the content ident-hash.


  • Fix a relative path within the sub-collection uuid migration.


  • Update SQL to include sub-collection uuid schema changes from cnx-archive.


  • Make the project db-migrator aware.


  • Update SQL to include collated schema changes from cnx-archive.


  • Remove localhost venv initialization constraint.


  • Update SQL to account for changes in the cnx-publishing project.


  • Update SQL to account for changes in the cnx-publishing and cnx-archive projects.

  • Fix to include schema files in the distribution.


  • Add a commandline interface for initializing the database.

  • Add a commandline interface for initializing or re-initializing the virtualenv within the database.


  • Update SQL to account for changes made in the cnx-publishing and cnx-archive projects.


  • Add functions for initializing the database.

  • Merge database schemata from the cnx-publishing and cnx-archive projects.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

cnx_db-3.5.3-py2.py3-none-any.whl (187.3 kB view hashes)

Uploaded py2 py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page