Coder Social home page Coder Social logo

Comments (8)

canonic-epicure avatar canonic-epicure commented on August 16, 2024

Is this issue still open? I thought its already impelemented?
From the web site:

Easy schema generation from existing databases

from beam.

tathougies avatar tathougies commented on August 16, 2024

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.

tathougies avatar tathougies commented on August 16, 2024

@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.

canonic-epicure avatar canonic-epicure commented on August 16, 2024

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.

tathougies avatar tathougies commented on August 16, 2024

@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.

canonic-epicure avatar canonic-epicure commented on August 16, 2024

Sounds cool.

I'll give it a try soon.

from beam.

canonic-epicure avatar canonic-epicure commented on August 16, 2024

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.

canonic-epicure avatar canonic-epicure commented on August 16, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.