Saving to PostgreSQL
TypeormDatabase context store provides a wrapper over the TypeORM EntityManager optimized for batch saving. It currently supports only Postgres-compatible databases and seamlessly integrates with entity classes generated from the schema file.
Check out this section of the reference page to learn how to specify the database connection parameters.
Usage
FooEntityrepresents a TypeORM entity class. In squids, these are typically generated from schema files with squid-typeorm-codegen.TypeormDatabaseconstructor options govern the behavior of the class at the highest level. They are described in this section of the reference.ctx.storeis of typeStore. See theStoreinterface section of the reference page for more details.
Database migrations
The Squid SDK manages the database schema with TypeORM-based database migrations by means of thesquid-typeorm-migration(1) tool.
The tool auto-generates the schema migrations from the TypeORM entities created by codegen, so that custom migration scripts are rarely needed.
Here are some useful commands:
Updating after schema changes
In most cases the simplest way to update the schema is to drop the database and regenerate the migrations from scratch. 1. Update schema.graphql 2. Regenerate the TypeORM entity classesUpdating a deployed squid schema
In some rare cases it is possible to update the schema without dropping the database and restarting the squid from a blank state. The most important case is adding an index to an entity field. More complex changes are usually not feasible. Updating a running squid requires that you add an incremental migration. 1. Ensure that your local database is running and has the same schema as the database of your Cloud squid In most situations re-creating the database container and applying existing migrations should be enough:db/migrations. You may want to examine it before proceeding to the next step.
5. Update the squid in Cloud
If the squid is deployed to SQD Cloud, update the deployed version.
If you’re self-hosting it, update your remote codebase and run
SQD Cloud deployment
By default, the TypeORM migrations are automatically applied by Cloud with the commandnpx squid-typeorm-migration apply before the squid services are started. For custom behavior, one can override the migration script using the optional migrate: section of squid.yaml.
To force Cloud to reset the database and start with a blank state after a schema change, use the
--hard-reset flag of sqd deploy.
