The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 1.024 - 2019-04-26

  • Added
    • When reading a schema from the database, Yancy will now prefer "natural" keys to artificial ones. For example, if you have a "users" table with an auto-increment "id" column and a unique "username" column, Yancy will pick the "username" column as the ID field. This creates a nicer URL structure in Yancy controllers.
    • Default values are now properly set from the database when reading the schema.
    • For DBIx::Class backends, Yancy will now call the `yancy` method on the ResultSource object to get default configuration for the collection. Using this method you can quickly make Yancy ignore your table by returning `{ 'x-ignore' => 1 }`, you can improve Yancy's detection of field settings, or you can provide a default set of list columns.
    • Virtual collections can now be created with `x-view`. A virtual collection can provide a read-only subset of the underlying collection's properties. In the future, virtual collections can become editable and will have column filters.
    • Added a `yancy backend copy` command. Use this command to copy data from your app's backend to another backend. This can initialize a test database, migrate from one backend to another, or promote data from a staging server to production.
  • Fixed
    • Yancy will now normalize the JSON schema passed-in so that consumers get a full schema. All the default values Yancy uses will be placed in the schema data structure returned by the `schema` helper.
    • When reading a MySQL database, Yancy now correctly finds a unique column. Previously, it could pick a non-unique column that had an index.
  • Other
    • Added tests for running search queries on various non-string types (integer, boolean)
    • Added more tests for `order_by` in the backend list method
    • Migrated the Yancy doc site example to use the new Yancy::Backend::Static module. This backend module is in its own distribution because it depends on some extra prerequisites.

Documentation

Start the standalone Yancy web application
Handles talking to the database.
How to configure Yancy
How to run Yancy without writing Perl code

Modules

Embed a simple admin CMS into your Mojolicious application
A simple framework and editor for content-driven Mojolicious websites
A backend for DBIx::Class schemas
A backend for MySQL using Mojo::mysql
A backend for Postgres using Mojo::Pg
A role to give a relational backend relational capabilities
A role to give a relational backend relational capabilities
A role to give a synchronous backend useful Promises methods
A backend for SQLite using Mojo::SQLite
Commands for working with Yancy backends
Copy data between backends
Basic controller for displaying content
An OpenAPI REST controller for the Yancy editor
A controller to show a user only their content
A simple auth module for a site
Generate form HTML using various UI libraries
Generate forms using Bootstrap 4
Utilities for Yancy