shlomi-noach / common_schema

DBA's framework for MySQL
MIT License
129 stars 25 forks source link

How to build the project? #18

Open jfneis opened 5 years ago

jfneis commented 5 years ago

@shlomi-noach would you mind to give a quick overview of the build requirements?

shlomi-noach commented 5 years ago

Heh, it's been a few years, and I'm surprised to learn this is not documented...

You need ant and ant-contrib. Hey, those were the tools back in the day... You then need a running MySQL server.

build.xml is the ant build file. I can definitely see some mess here: you'll need to uncomment (or create your own) property name="mysql.socket" section to identify your local MySQL socket.

You then $ ant all or $ ant build.

Perhaps moving this to Docker would be a better idea.

jfneis commented 5 years ago

Hey, thanks for your quick answers!

I worked a little bit in the project and could make some progress, but I'd like to check some ideas with you before proceeding:

Thoughts?

Em qua, 9 de jan de 2019 às 07:40, Shlomi Noach notifications@github.com escreveu:

Heh, it's been a few years, and I'm surprised to learn this is not documented...

You need ant and ant-contrib. Hey, those were the tools back in the day... You then need a running MySQL server.

build.xml is the ant build file. I can definitely see some mess here: you'll need to uncomment (or create your own) property name="mysql.socket" section to identify your local MySQL socket.

You then $ ant all or $ ant build.

Perhaps moving this to Docker would be a better idea.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/shlomi-noach/common_schema/issues/18#issuecomment-452633202, or mute the thread https://github.com/notifications/unsubscribe-auth/AA_F9lO5QKW0JyHBYxXn8ZHM3saffJeVks5vBbkjgaJpZM4Z2Qzi .

shlomi-noach commented 5 years ago

@jfneis yes to both. I also added you as a collaborator. Please use the pull request flow and I'll review your PRs.

jfneis commented 5 years ago

hey @shlomi-noach, just sent a PR with smaller items first.

started the required changes to run the project in 5.7 (column user.password doesn't exist anymore), moving the variant scripts to specific folders (mysql56, mysql57) and adjusting build.xml to concatenate the specific files.

refactoring more complex scripts, though, i think an easier approach would be defining a %user-password-placeholder% and replacing it using ant. the downside is that some scripts wouldn't work directly from source, as the placeholder means nothing without ant (and i thing it's a big downside).

what do you think? maybe root folders "mysql56lte" and "mysql57gte" mimicking the root folder structure just with specific scripts?

shlomi-noach commented 5 years ago

i think an easier approach would be defining a %user-password-placeholder% and replacing it using ant.

that's a reasonable approach.

maybe root folders "mysql56lte" and "mysql57gte" mimicking the root folder structure just with specific scripts?

that's also a good approach. It was suggested in the past, we couldn't figure out a nice and clean way to do it without much duplication.

Also, I'm good to get rid of ant if an easy alternative is at hand.

jfneis commented 5 years ago

Ok.. i will create a PR with the different directories approach so we can discuss it better.

I have already put some work on it, so probably will have smtg to show soon.

[redacted personal info]

Em qui, 17 de jan de 2019 03:47, Shlomi Noach <notifications@github.com escreveu:

i think an easier approach would be defining a %user-password-placeholder% and replacing it using ant.

that's a reasonable approach.

maybe root folders "mysql56lte" and "mysql57gte" mimicking the root folder structure just with specific scripts?

that's also a good approach. It was suggested in the past, we couldn't figure out a nice and clean way to do it without much duplication.

Also, I'm good to get rid of ant if an easy alternative is at hand.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/shlomi-noach/common_schema/issues/18#issuecomment-455050584, or mute the thread https://github.com/notifications/unsubscribe-auth/AA_F9jDzUQ8yiIGPLDl3I_GP-yiKT9xsks5vEA5-gaJpZM4Z2Qzi .

jfneis commented 5 years ago

@shlomi-noach thought about a 3rd option that looks cleaner to me: creating a view with all fields from user table but with the same password column alias and replace every script that uses user table with this view.

this way we can have only one file (user view) that handles the difference between 5.6- and 5.7+, simply using a try-and-silence-on-error approach that you suggested in another ticket.

what u think? i don't know performance impacts that a view can have in this scenario, but i don't think it would be critical.

shlomi-noach commented 5 years ago

@jfneis that sounds like a sensible approach. Go for it!