{"repo":"nepalez/pg_trunk","free":true,"listed":false,"github":"https://github.com/nepalez/pg_trunk","clone":"git clone https://github.com/nepalez/pg_trunk.git","description":"Empower PostgreSQL migrations in Rails app","language":"Ruby","stars":148,"topics":["activerecord","postgresql","rails","ruby"],"license":"MIT","category":"databases-storage","readme_excerpt":"PGTrunk Empower PostgreSQL migrations in Rails app [![Gem Version][gem-badger]][gem] [![Build Status][build-badger]][build] PGTrunk adds methods to ActiveRecord::Migration to create and manage various PostgreSQL objects (like views, functions, triggers, statistics, types etc.) in Rails. This gem is greatly influenced by the [Scenic], [F(x)] and [ActiveRecord::PostgtresEnum] projects but takes some steps further. In addition to support of different objects, we are solving a problem of interdependency between them. For example, you can create a table, then a function using its type as an argument, then check constraint and index using the function: Notice, that we had to separate definitions of indexes and check constraints from tables, because there can be other objects (like functions or types) squeezing between them. Another difference from aforementioned gems is that we explicitly register all objects created by migrations in the special table ( pg trunk ). This let us distinct objects created by \"regular\" migration from temporary ones added manually and exclude the latter from the schema. We bind any object to a particular version of migration which added it. That's how only those objects that belong to the current branch are dumped into the schema.rb . As of today we support creation, modification and dropping the following objects: - tables - indexes - foreign keys (including multi-column ones) - check constraints - views - materialized views - functions - procedures - t","default_branch":null,"files":null,"tree":[],"storefront":"/r/nepalez","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/nepalez/pg_trunk/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}