marcmarcdi Team

IHP Release: 04.09.2020 (v20200904)

It's time for the next release of IHP: 20200904 🎉

Major Changes

  • Composite Primary Key Support: You can now use tables that have a primary key consisting of multiple columns. This helps you to handle complex database schemas with IHP. To use this new feature, just define a composite PK in your Schema.sql like this:
CREATE TABLE order_trucks (
    order_id BIGSERIAL NOT NULL,
    truck_id BIGSERIAL NOT NULL,
    PRIMARY KEY(order_id, truck_id)
);

This feature has been contributed by @ruhatch 🎉

  • Improved Error Screen when a request parameter is missing: Errors caused by calls to param now have a beautiful error screen telling you about what do next. It also displays all submitted params, so you can quickly spot whether there was a typo.

Other Changes

- The primary haskell json library aeson is now exported by the ViewPrelude by default. No need to manually import it in your views anymore. - A code generation issue caused by having a table with two foreign keys referencing the same foreign table has been fixed. - An issue encoding with enums using multibyte characters has been resolved - The CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; is not required in your app's Schema.sql anymore. It's automatically loaded by IHP. - Support for empty attributes in HSX like <input disabled/> has been added. - Grammar fixes - The make target build/bin/RunOptimizedProdServer now correctly depends on build/Generated/Types.hs. The target build/bin/RunUnoptimizedProdServer already has this dependency. - Dotless Emails are now validated correctly - All IHP binaries are now compiled with -threaded. Somehow we missed this. This improves the performance of the dev server. - The default ghci prompt of a IHP is now a lambda symbol - make targets for compiling IHP scripts have been added - a naming issue causing request not being easily useable in actions has been resolved

  • The release versioning scheme has changed from vDDMMYYYY to vYYYYMMDD starting with this version.

Updating

To update the IHP version of your project, open default.nix and change the git commit in line 4 to the following:

rev = "a12a1ce8f16814b802aae39eb26a9d3247192c12";

After that run the following command to update your project:

nix-shell -j auto --cores 0 --run 'make -B .envrc'

Now you can start your project as usual with ./start.


In case you get a compiler error about a missing field in ModelContext in the auto-generated build/Generated/Types.hs please stop your application and do a clean rebuild:

make clean
nix-shell -j auto --cores 0 --run 'make -B .envrc'
./start

If you have any problems with updating, let us know on the brand new IHP forum.

📧 To stay in the loop, subscribe to the IHP release emails. Or follow digitally induced on twitter..

📅 The next release is expected to be released on 18.09.2020.

Also a short update on IHP Cloud: We're sending out the first IHP Cloud invites in the coming days 🔥