===========================
Connexions Database Library
.. image:: https://travis-ci.org/Connexions/cnx-db.svg
:target: https://travis-ci.org/Connexions/cnx-db
.. image:: https://img.shields.io/codecov/c/github/Connexions/cnx-db.svg
:target: https://codecov.io/gh/Connexions/cnx-db
.. image:: https://badge.fury.io/py/cnx-db.svg
:target: http://badge.fury.io/py/cnx-db
View the documentation <http://cnx-db.readthedocs.io/en/latest/>
_
on the Read the Docs site.
License
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
.. RUN make lint
before you commit
3.5.3
- 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 20170911201035_transform_cnxml_to_html.py 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)
3.5.2
- Add twine check on travis (#190)
- Separate db_tables function and fixture for reuse (#191)
3.5.1
- Rebake only latest openstax books in transforms migration (#189)
3.5.0
- Documentation for the database triggers (#188)
- Rebake books in cnxml-to-html transforms migration (#187)
3.4.0
- Fix empty collated file associations in dump_book.py (#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 setup.py to require cnx-common>=1.2.1
3.3.0
- Move ident-hash parsing functionality to cnx-common (#180)
- Purge varnish cache after transforms (#181)
- Add script/dump_book.py to dump/load a book from db (#183)
- SQL queries for xpath search (#182)
3.2.0
- Add a column for the REX URL slug (#178)
- Include the slug value in tree_to_json results (#179)
3.1.1
- Exclude tests in find_packages() in setup.py (#175)
3.1.0
- Split transforms (cnxml->html,html->cnxml) code into a new package,
cnx-transforms. The cnx-transforms package is now a dependency
of this project.
3.0.0
- Move ident hash code to cnx-db (#625)
- Adjust container setup (#173)
- Add replace_collxml function (#171)
2.7.0
- various build-system infrastructure changes (yay Jenkins)
- functions for explicitly setting canonical for all pages in a book
2.6.3
- collxml generator function fixes
2.6.2
- more migration script bugfixes
2.6.1
- bugfix in db migration script (need db superuser)
2.6.0
- Jenkins CI framework and initial support
- Generate collexion.xml files for new (minor rev)
collections that do not have them.
2.5.1
- bugfix in a db migration script - no production impact
2.5.0
- Support for canonical book per page - uuid
2.4.0
- Added columns to legacy persons table to hold authentication info
2.3.4
- Fixup function ownership on production DBs (production and synced from there)
2.3.3
2.3.2
2.3.1
2.3.0
- 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.
2.2.1
- Add an index to dramatically speed up
/contents/<book-id>@ver:<pageid>@ver
2.2.0
- 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.
2.1.0
- Adds fulltext search fixes and speedups.
2.0.1
- Fix the documentation for Pyramid integration properties.
- Fix the HTML reference resolver for cases where the moduleid is found
in the resource filename.
2.0.0
- 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.
1.6.1
- 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 https://github.com/Connexions/cnx-db/issues/120 for issue details.
1.6.0
- 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
1.5.1
- 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/00_initdb.sh to look for
*.sql
and *.sql.gz
files in the docker entrypoint directory rather than
the current working directory.
1.5.0
1.4.0
1.3.0
- 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.
1.2.0
- 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.
1.1.0
- 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)
1.0.0
- Migrate transform triggers logic to this package from cnx-archive (#86)
- Ignore artifacts of running ci_test_migrations.sh
- Run non-continous integration runs of ci_test_migration.sh quietly
- Fix docker-compose to use env vars
0.12.0
- 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 ci_test_migrations.sh
- 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)
0.11.0
- In book search to provide query_type parameterization for AND vs OR queries
(#87)
- Fix number of migrations to rollback in ci_test_migrations.sh
- 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)
0.10.4
0.10.3
- Fix to ignore stateid when copying subcollections to avoid adding
subcollections to the post-publication queue (#73)
0.10.2
- Use postgres super user in migrations that require it (#71)
- Correct errors in subcol uuid migration associated with an empty batch (#70)
0.10.1
- 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)
0.10.0
- 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)
0.9.0
- Add AS_VENV_IMPORTABLE env variable to the pytest db_init fixture.
- Fix load session_exec.so 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.
0.8.0
- Add tables and triggers to store recipes associated with print-styles.
0.7.0
- Add association table for celery results to documents.
0.6.0
- Share this project's pytest fixtures for use in dependent projects.
- Create the cnxdb.contrib package.
- Fix to exclude subcollections from the search query.
0.5.4
- Fix to only create the moduletags index when it does not exist.
0.5.3
- Add an index for moduletags to improve search.
0.5.2
- Fix to speedup in-book search for baked content.
0.5.1
- Include a migration for the post_publication channel payload change.
0.5.0
- 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.
0.4.0
- 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.
0.3.0
- Adjust SQL functions declarations to idempotent declarations.
- Add SQL functions and indexes for the content ident-hash.
0.2.7
- Fix a relative path within the sub-collection uuid migration.
0.2.6
- Update SQL to include sub-collection uuid schema changes from cnx-archive.
0.2.5
- Make the project db-migrator aware.
0.2.4
- Update SQL to include collated schema changes from cnx-archive.
0.2.3
- Remove localhost venv initialization constraint.
0.2.2
- Update SQL to account for changes in the cnx-publishing project.
0.2.1
- Update SQL to account for changes in the cnx-publishing
and cnx-archive projects.
- Fix to include schema files in the distribution.
0.2.0
- Add a commandline interface for initializing the database.
- Add a commandline interface for initializing or re-initializing
the virtualenv within the database.
0.1.1
- Update SQL to account for changes made in the cnx-publishing
and cnx-archive projects.
0.1.0
- Add functions for initializing the database.
- Merge database schemata from the cnx-publishing and cnx-archive projects.