All Versions
Latest Version
Avg Release Cycle
86 days
Latest Release
441 days ago

Changelog History
Page 5

  • v0.8.1 Changes

    November 01, 2016

    โž• Added

    • SQLite date and time columns can be deserialized to/from strings.

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed an issue with diesel_codegen on nightlies >= 2016-10-20
  • v0.8.0 Changes

    October 10, 2016

    โž• Added

    • โž• Added partial support for composite primary keys.

    • โž• Added support for PostgreSQL NULLS FIRST and NULLS LAST when sorting. See for details.

    • โž• Added support for the timestamp with time zone type in PostgreSQL (referred to as diesel::types::Timestamptz)

    • ๐Ÿ‘€ Diesel CLI can now generate bash completion. See the readme for details.

    • infer_schema! and infer_table_from_schema! can now take "env:foo" instead of env!("foo") and "dotenv:foo" instead of dotenv!("foo"). The use of dotenv requires the dotenv feature on diesel_codegen, which is included by default. Using env! and dotenv! will no longer work with diesel_codegen. They continue to work with diesel_codegen_syntex, but that crate will be deprecated when Macros 1.1 is in the beta channel for Rust.

    ๐Ÿ”„ Changed

    • Structs annotated with #[has_many] or #[belongs_to] now require #[derive(Associations)]. This is to allow them to work with Macros 1.1.

    • embed_migrations! now resolves paths relative to Cargo.toml instead of the file the macro was called from. This change is required to allow this macro to work with Macros 1.1.

    ๐Ÿ›  Fixed

    • diesel migrations run will now respect migration directories overridden by command line argument or environment variable
    • The infer_schema! macro will no longer fetch views alongside with tables. This was a source of trouble for people that had created views or are using any extension that automatically creates views (e.g. PostGIS)

    ๐Ÿ”„ Changed

    • #[changeset_for(foo)] should now be written as #[derive(AsChangeset)] #[table_name="foo"]. If you were specifying treat_none_as_null = "true", you should additionally have #[changeset_options(treat_none_as_null = "true")].
    • #[insertable_into(foo)] should now be written as #[derive(Insertable)] #[table_name="foo"].
  • v0.7.2 Changes

    August 20, 2016
    • โšก๏ธ Updated nightly version and syntex support.
  • v0.7.1 Changes

    August 11, 2016

    ๐Ÿ”„ Changed

    • ๐Ÿšš The Copy constraint has been removed from Identifiable::Id, and Identifiable#id now returns &Identifiable::Id.

    ๐Ÿ›  Fixed

    • #[belongs_to] now respects the foreign_key option when using diesel_codegen or diesel_codegen_syntex.
  • v0.7.0 Changes

    August 01, 2016

    โž• Added

    ๐Ÿ”„ Changed

    • ๐Ÿš€ Diesel now targets nightly-2016-07-07. Future releases will update to a newer nightly version on the date that Rust releases.

    • diesel_codegen has been split into two crates. diesel_codegen and diesel_codegen_syntex. See this commit for migration information.

    • Most structs that implement Queryable will now also need #[derive(Identifiable)].

    • infer_schema! on SQLite now accepts a larger range of type names

    • types::VarChar is now an alias for types::Text. Most code should be unaffected by this. PG array columns are treated slightly differently, however. If you are using varchar[], you should switch to text[] instead.

    • Struct fields annotated with #[column_name="name"] should be changed to #[column_name(name)].

    • ๐Ÿ‘€ The structure of DatabaseError has changed to hold more information. See and for more information

    • โšก๏ธ Structs which implement Identifiable can now be passed to update and delete. This means you can now write delete(&user).execute(&connection) instead of delete(users.find(

    ๐Ÿ“„ [associations-module]:

    ๐Ÿ›  Fixed

    • &&[T] can now be used in queries. This allows using slices with things like #[insertable_into].
  • v0.6.1 Changes

    April 14, 2016

    โž• Added

    • โž• Added the escape method to Like and NotLike, to specify the escape character used in the pattern. See EscapeExpressionMethods for details.

    ๐Ÿ›  Fixed

    • diesel_codegen and diesel_cli now properly rely on Diesel 0.6.0. The restriction to 0.5.0 was an oversight.

    • ๐Ÿ“‡ infer_schema! now properly excludes metadata tables on SQLite.

    • infer_schema! now properly maps types on SQLite.

  • v0.6.0 Changes

    April 12, 2016

    โž• Added

    • Queries can now be boxed using the into_boxed() method. This is useful for conditionally modifying queries without changing the type. See [BoxedDsl][boxed_dsl] for more details.

    • ๐Ÿ‘ infer_schema! is now supported for use with SQLite3.

    • The maximum table size can be increased to 52 by enabling the huge-tables feature. This feature will substantially increase compile times.

    • The DISTINCT keyword can now be added to queries via the distinct() method.

    • SqliteConnection now implements Send

    ๐Ÿ“„ [boxed_dsl]:

    ๐Ÿ”„ Changed

    • ๐Ÿ”€ diesel::result::Error now implements Send and Sync. This required a change in the return type of ToSql and FromSql to have those bounds as well.

    • It is no longer possible to pass an owned value to diesel::insert. insert will now give a more helpful error message when you accidentally try to pass an owned value instead of a reference.

    ๐Ÿ›  Fixed

    • #[insertable_into] can now be used with structs that have lifetimes with names other than 'a'.

    • Tables with a single column now properly return a single element tuple. E.g. if the column was of type integer, then users::all_columns is now (id,) and not id.

    • infer_schema! can now work with tables that have a primary key other than id.

    โœ‚ Removed

    • โœ‚ Removed the no select option for the table! macro. This was a niche feature that didn't fit with Diesel's philosophies. You can write a function that calls select for you if you need this functionality.
  • v0.5.4 Changes

    March 23, 2016
    • โšก๏ธ Updated diesel_codegen to allow syntex versions up to 0.30.0.
  • v0.5.3 Changes

    March 12, 2016

    โž• Added

    • Added helper function diesel_manage_updated_at('TABLE_NAME') to postgres upon database setup. This function sets up a trigger on the specified table that automatically updates the updated_at column to the current_timestamp for each affected row in UPDATE statements.

    • โž• Added support for explicit RETURNING expressions in INSERT and UPDATE queries. Implicitly these queries will still use RETURNING *.

    ๐Ÿ›  Fixed

    • โšก๏ธ Updated to work on nightly from early March
  • v0.5.2 Changes

    February 27, 2016
    • โšก๏ธ Updated to work on nightly from late February