Coder Social home page Coder Social logo

Add a 'new' command about sql-migrate HOT 8 OPEN

rubenv avatar rubenv commented on June 14, 2024 2
Add a 'new' command

from sql-migrate.

Comments (8)

rubenv avatar rubenv commented on June 14, 2024

One thing I didn't want to enforce is a naming convention for migrations (the prefix). You can use the epoch, some kind of formatted time stamp or a sequence number; you can separate it using dashes or underscores: all these options are perfectly fine and valid, it's just a choice you make for your project.

I'd love to have a new command, but we'll need to find a way to avoid pushing people into a fixed pattern.

If we can figure that out: yes please!

from sql-migrate.

jamlen avatar jamlen commented on June 14, 2024

OK so how about we have a way of specifying the format in the config or use the default? Options could be

  • epoch - default
  • iso for ISO-8601 datestamp
  • counter which increments count of current folder listing
  • none

Also I would like to append the action so to expand on my example above:

sql-migrate new udf-ParseDate alter

results in ./migrations/1443610373-udf-ParseDate-alter.sql

If action is create then the pre-population of the migrate Down would be skipped, but for alter or drop it can do the scanning thing and populate it.

from sql-migrate.

rubenv avatar rubenv commented on June 14, 2024

If action is create then the pre-population of the migrate Down would be skipped, but for alter or drop it can do the scanning thing and populate it.

How would that work?

OK so how about we have a way of specifying the format in the config or use the default?

Can we be smart about it and detect the used style from existing migration files?

from sql-migrate.

jamlen avatar jamlen commented on June 14, 2024

How would that work?

As an outline, it would:

  1. use the name and find all the migrations that match in the filename.
  2. establish the latest one
    • which should be sort filename descending, take the first.
    • If none was chosen that might be tricky or unreliable as it would have to rely upon modified date.
  3. Read that file, find the -- +migrate Down
  4. Insert into template

Can we be smart about it and detect the used style from existing migration files?

We could do, so look at the first & last file and use regex to work out the format. Personally I'd rather use the config file rather than trying to be smart (KISS principle). At the end of the day, this would only affect the new command usage.

from sql-migrate.

rubenv avatar rubenv commented on June 14, 2024

Personally I'd rather use the config file rather than trying to be smart (KISS principle).

I guess we have different opinions on KISS then :-). Any piece of configuration we can avoid is a net win, but if the alternative is something that barely works, sure.

from sql-migrate.

doctordesh avatar doctordesh commented on June 14, 2024

One thing I didn't want to enforce is a naming convention for migrations (the prefix). You can use the epoch, some kind of formatted time stamp or a sequence number; you can separate it using dashes or underscores: all these options are perfectly fine and valid, it's just a choice you make for your project.

Is it bad to use a default prefix if you allow them to change the prefix-pattern in the config? I personally have always used the YYYY-MM-DD-HH-II-SS pattern but a sequence number or epoch would work just as good. Personally I would not think it's bad to choose a default and then just let the config decide.

Do you feel that you are enforcing them when choosing a default that can be changed in the config?

from sql-migrate.

codepushr avatar codepushr commented on June 14, 2024

I'd find this quite useful. I'd also make sense because incrementing the prefix by hand doesn't work in big teams where people create migrations simultanously and creating a timestamp by hand just feels weird. Many modern migration cli tools offer a create sub command. Good idea!

from sql-migrate.

rubenv avatar rubenv commented on June 14, 2024

Thanks to the wonderful work of @yageek, there's now a new command.

It's not configurable nor smart, but we had to start somewhere. If someone is willing to make this format configurable and/or smart, feel free to join in!

from sql-migrate.

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.