Generate and load SQL tables based on Table Schema descriptors.
tableschema.Storage
interfaceThe package use semantic versioning. It means that major versions could include breaking changes. It's highly recommended to specify package
version range in your setup/requirements
file e.g. package>=1.0,<2.0
.
pip install tableschema-sql
from datapackage import Package
from tableschema import Table
from sqlalchemy import create_engine
# Create sqlalchemy engine
engine = create_engine('sqlite://')
# Save package to SQL
package = Package('datapackage.json')
package.save(storage='sql', engine=engine)
# Load package from SQL
package = Package(storage='sql', engine=engine)
package.resources
Storage
Storage(self, engine, dbschema=None, prefix='', reflect_only=None, autoincrement=None)
SQL storage
Package implements Tabular Storage interface (see full documentation on the link):
Only additional API is documented
Arguments
sqlalchemy
engine{'bucket1': 'id', 'bucket2': 'other_id}
storage.create
storage.create(self, bucket, descriptor, force=False, indexes_fields=None)
Create bucket
Arguments
storage.write
storage.write(self, bucket, rows, keyed=False, as_generator=False, update_keys=None, buffer_size=1000, use_bloom_filter=True)
Write to bucket
Arguments
The project follows the Open Knowledge International coding standards.
Recommended way to get started is to create and activate a project virtual environment. To install package and development dependencies into active environment:
$ make install
To run tests with linting and coverage:
$ make test
Here described only breaking and the most important changes. The full changelog and documentation for all released versions could be found in nicely formatted commit history.
autoincrement
parameter to be a mapping