<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/pdxpug-septemter-8-2026-meetup-migrating-to-a-temporal-schema-ls2lclgpr" -->

---
title: PDXPUG Septemter 8, 2026, MeetUp: Migrating to a...
description: A Portland PostgreSQL Users Group meetup on September 8, 2026, timed to coincide with devopsdays Portland, features Paul Jungwirth presenting on migrating...
canonical: https://daily.dev/posts/pdxpug-septemter-8-2026-meetup-migrating-to-a-temporal-schema-ls2lclgpr
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: PDXPUG Septemter 8, 2026, MeetUp: Migrating to a Temporal Schema | daily.dev
og:description: A Portland PostgreSQL Users Group meetup on September 8, 2026, timed to coincide with devopsdays Portland, features Paul Jungwirth presenting on migrating...
og:url: https://daily.dev/posts/pdxpug-septemter-8-2026-meetup-migrating-to-a-temporal-schema-ls2lclgpr
og:image: https://api.daily.dev/og/posts/Ls2lcLGPr.png
og:image:alt: PDXPUG Septemter 8, 2026, MeetUp: Migrating to a Temporal Schema
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# PDXPUG Septemter 8, 2026, MeetUp: Migrating to a Temporal Schema

**[Planet PostgreSQL](https://daily.dev/sources/planet-postgresql)** · 2 min read · 0 upvotes · 1 comments

## Summary

A Portland PostgreSQL Users Group meetup on September 8, 2026, timed to coincide with devopsdays Portland, features Paul Jungwirth presenting on migrating database schemas to a temporal structure. He'll walk through converting a real time-tracking and invoicing application (used by him for over 12 years) to use application-time daterange and tstzrange columns, covering benefits like easier historical queries, better soft-deletes, and avoiding foreign key bugs from stale references. The talk notes that PostgreSQL 18 added temporal primary keys, unique constraints, and foreign keys with NO ACTION, with UPDATE/DELETE FOR PORTION OF hoped for in v19. Remaining pain points and mitigation strategies will also be discussed. The event is held at UpStart Collective in the U.S. Bancorp Tower, with RSVP required via Meetup.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://postgr.es/p/9sd>

## Questions this post answers

### What temporal features did PostgreSQL 18 add for schema design?

PostgreSQL 18 added temporal primary keys, unique constraints, and foreign keys, with foreign keys supporting the NO ACTION option. These features let developers model application-time validity periods (using daterange or tstzrange columns) directly in constraints, making it easier to enforce referential integrity across historical data without ad hoc workarounds.

_Track PostgreSQL feature releases like this on daily.dev before planning a temporal schema migration._

### What temporal feature is expected in PostgreSQL 19 for working with time-range data?

PostgreSQL 19 is hoped to include UPDATE/DELETE FOR PORTION OF, a SQL:2011 application-time feature that would let developers update or delete only part of a temporal record's valid time range rather than the whole row. This would simplify managing daterange or tstzrange columns in temporal table designs.

_Developers planning temporal schemas can follow upcoming PostgreSQL capabilities on daily.dev._

### What are the benefits of migrating a database schema to a temporal structure using daterange or tstzrange columns?

Temporal schemas make it easier to query and join historical data, provide a cleaner soft-delete approach that preserves referential integrity, eliminate bugs caused by foreign keys pointing to since-updated rows, and replace ad hoc historical data representations with a standardized structure using application-time ranges like daterange and tstzrange.

_daily.dev helps developers weighing a temporal schema migration keep up with PostgreSQL best practices._

## Community discussion

Top comments from developers on daily.dev.

**@trevorsuna** · 0 upvotes

> Temporal constraints becoming native in PostgreSQL 18 should remove a lot of fragile application-side checks. The interesting part will be migration discipline: backfilling ranges, validating overlaps, and keeping history queries fast while the old and new models coexist.

## Similar posts on daily.dev

- [Looking Forward to Postgres 19: It's About Time](https://daily.dev/posts/looking-forward-to-postgres-19-it-s-about-time-chhpnhwmp) · Planet PostgreSQL · 0 upvotes · 0 comments
- [PostgreSQL as a temporal database](https://daily.dev/posts/postgresql-as-a-temporal-database-ypp4bfcv5) · Planet PostgreSQL · 0 upvotes · 0 comments
- [PostgreSQL 18 - Temporal Constraints](https://daily.dev/posts/postgresql-18---temporal-constraints-bygll79le) · Hashrocket · 32 upvotes · 1 comments

---

Tags: [#sql](https://daily.dev/tags/sql), [#postgresql](https://daily.dev/tags/postgresql)

[View this post on daily.dev](https://daily.dev/posts/pdxpug-septemter-8-2026-meetup-migrating-to-a-temporal-schema-ls2lclgpr)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"PDXPUG Septemter 8, 2026, MeetUp: Migrating to a Temporal Schema","url":"https://daily.dev/posts/pdxpug-septemter-8-2026-meetup-migrating-to-a-temporal-schema-ls2lclgpr","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/pdxpug-septemter-8-2026-meetup-migrating-to-a-temporal-schema-ls2lclgpr"},"datePublished":"2026-08-13T18:04:24.312Z","dateModified":"2026-09-14T09:32:24.904Z","description":"A Portland PostgreSQL Users Group meetup on September 8, 2026, timed to coincide with devopsdays Portland, features Paul Jungwirth presenting on migrating...","image":"https://media.daily.dev/image/upload/s--P4t4XyoV--/f_auto/v1722860399/public/Placeholder%2001","thumbnailUrl":"https://media.daily.dev/image/upload/s--P4t4XyoV--/f_auto/v1722860399/public/Placeholder%2001","isAccessibleForFree":true,"articleSection":"Planet PostgreSQL","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Planet PostgreSQL","logo":"https://media.daily.dev/image/upload/logos/placeholder.jpg","url":"https://daily.dev/sources/planet-postgresql"},"commentCount":1,"discussionUrl":"https://daily.dev/posts/pdxpug-septemter-8-2026-meetup-migrating-to-a-temporal-schema-ls2lclgpr","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":1}],"keywords":"sql,postgresql","timeRequired":"PT2M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Planet PostgreSQL","item":"https://daily.dev/sources/planet-postgresql"},{"@type":"ListItem","position":3,"name":"PDXPUG Septemter 8, 2026, MeetUp: Migrating to a Temporal Schema"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/pdxpug-septemter-8-2026-meetup-migrating-to-a-temporal-schema-ls2lclgpr","comment":[{"@type":"Comment","text":"Temporal constraints becoming native in PostgreSQL 18 should remove a lot of fragile application-side checks. The interesting part will be migration discipline: backfilling ranges, validating overlaps, and keeping history queries fast while the old and new models coexist.","datePublished":"2026-08-15T02:51:47.848Z","url":"https://daily.dev/posts/Ls2lcLGPr#c-WfLsIOsKK","author":{"@type":"Person","name":"Trevor Suna","url":"https://daily.dev/trevorsuna","image":"https://media.daily.dev/image/upload/s--dZ7gXxpp--/f_auto/v1784081551/avatars/avatar_EMoP47rpuw8DNjhp6R1b6?_a=BAMAMicg0"}}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/pdxpug-septemter-8-2026-meetup-migrating-to-a-temporal-schema-ls2lclgpr#faq","mainEntity":[{"@type":"Question","name":"What temporal features did PostgreSQL 18 add for schema design?","acceptedAnswer":{"@type":"Answer","text":"PostgreSQL 18 added temporal primary keys, unique constraints, and foreign keys, with foreign keys supporting the NO ACTION option. These features let developers model application-time validity periods (using daterange or tstzrange columns) directly in constraints, making it easier to enforce referential integrity across historical data without ad hoc workarounds. Track PostgreSQL feature releases like this on daily.dev before planning a temporal schema migration."}},{"@type":"Question","name":"What temporal feature is expected in PostgreSQL 19 for working with time-range data?","acceptedAnswer":{"@type":"Answer","text":"PostgreSQL 19 is hoped to include UPDATE/DELETE FOR PORTION OF, a SQL:2011 application-time feature that would let developers update or delete only part of a temporal record's valid time range rather than the whole row. This would simplify managing daterange or tstzrange columns in temporal table designs. Developers planning temporal schemas can follow upcoming PostgreSQL capabilities on daily.dev."}},{"@type":"Question","name":"What are the benefits of migrating a database schema to a temporal structure using daterange or tstzrange columns?","acceptedAnswer":{"@type":"Answer","text":"Temporal schemas make it easier to query and join historical data, provide a cleaner soft-delete approach that preserves referential integrity, eliminate bugs caused by foreign keys pointing to since-updated rows, and replace ad hoc historical data representations with a standardized structure using application-time ranges like daterange and tstzrange. daily.dev helps developers weighing a temporal schema migration keep up with PostgreSQL best practices."}}]}
```

