Comments (8)
Is this issue still open? I thought its already impelemented?
From the web site:
Easy schema generation from existing databases
from beam.
From the docs
The beam-migrations package is still a WIP. The following manual represents both planned and implemented features. If you'd like to help guide development, please join the beam-discussion mailing list.
I'll note it on the main page, sorry. I am working on it right now, but it's actually not straightforward :)
Always happy to have more contributors
from beam.
@samuraijack The nextgen-beam-migrate branch has a beam-migrate
tool that will help you generate (simple) schemas from backends that support it. Currently, only postgres is supported, but I'm working on sqlite.
To invoke
$ stack exec -- beam-migrate simple schema --backend Database.Beam.Postgres.Migrate --connection "postgres connection string"
If you're using cabal, you may have to explicitly set the ghc package path to point to the cabal sandbox or wherever beam-postgres
is installed.
$ beam-migrate --package-path path/to/ghc-package-conf simple schema --backend Database.Beam.Postgres.Migrate --connection "pg connection string"
from beam.
What the "simple" does mean? Some features not implemented yet?
Am I correct that it will generate source files with DB schema definition (in Haskell)?
from beam.
@samuraijack the beam-migrate
command is meant to expose an entire system for handling migrations. When complete, it will manage your haskell schema and backend databases and handle deployment on staging and production as well as local testing. I'm planning on making it quite opinionated.
However, I don't want to force people to use it. The simple
subcommand exposes non-stateful operations, such as extracting a Haskell schema from a database, or (in the future) calculating a sql migration script between two beam schemas. If you run the command, it will output a haskell module to stdout that will contain a correct haskell data type for each table, a Table
instance, a database type for the entire database, and a value of that type that can be used to access the individual tables. The module exports two symbols db
and migration
. db
can be used in queries, migration
can be used to create the schema in an empty database.
from beam.
Sounds cool.
I'll give it a try soon.
from beam.
It worked, schema module has been generated just fine. It required TypeApplications extension to compile though (not listed at the top).
I'll try to create some queries now..
from beam.
Would be cool to insert some kind of separators between the table definitions in the generated schema module - to easier understand the structure of file.
from beam.
Related Issues (20)
- Lens example in tutorial does not work HOT 1
- GHC 9.6 failures HOT 3
- beam-sqlite: No `instance HasSqlEqualityCheck Sqlite Day` HOT 1
- WHERE clauses are silently dropped if there is no FROM HOT 1
- beam-sqlite: support for `LIKE` + `ESCAPE` ? HOT 1
- free-5.2 not allowed
- vector-0.13 not allowed
- primitive-0.8 not allowed HOT 3
- How to get primary key type? HOT 1
- Subquery without aggregation
- Multicolumn aggregate HOT 1
- Is there any way to reuse a `ToField`, `FromField` definitions from sqlite-simple? HOT 1
- Precise type for `max_` aggregate function
- Postgres column doesn't roundtrip for type `Maybe (Vector Text)`
- Outdated dependencies HOT 4
- Passing `Double`s to `val_` sometimes leads to runtime errors
- run-time error "column t0.res0 does not exist" HOT 1
- Insert result of an insert
- Run-time error "window function first_value requires an OVER clause" HOT 1
- run-time error: operator does not exist: timestamp without time zone < text
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from beam.