Trifon (An ADempiere founder)
2010-09-16
Dear ADempiereans,
i'm glad to write you that today after 3 months of constant work we finally have downloadable and testable version of ADempiere on MySQL.
Source code can be found at:
https://sourceforge.net/p/adempiere-mysql/svn/LATEST/tree/branches/mysql-patches-360/
ADempiere distribution with MySQL dump can be downloaded from:
https://sourceforge.net/p/adempiere-mysql/svn/LATEST/tree/dist/mysql-dist/
And below are instructions how to run ADempiere on MySQL.
Prerequisites:
- SUN JDK
- MySQL 5.x
# Change my.cnf file.
# Set tables names to be lower case.
# Enable recursive stored procedures.
# Enable MySQL ANSI mode.
$ sudo vim /etc/mysql/my.cnf
lower_case_table_names=1
max_sp_recursion_depth=128
sql_mode='ANSI'
# Restart MySQL server
$ sudo /etc/init.d/mysql restart
# Create "adempiere" database
$ mysql -u root -p
mysql>create database adempiere DEFAULT CHARACTER SET = utf8 DEFAULT COLLATE = utf8_bin;
# Create "adempiere" MySQL DB user
$ mysql -u root -p
mysql> GRANT ALL ON adempiere.* TO 'adempiere'@'localhost' IDENTIFIED BY 'adempiere';
# Import Initial MySQL DB Seed(ADempiere version 3.6.0LTS)
$ mysql -u adempiere -p -h localhost adempiere < <ADEMPIERE_HOME>/data/Adempiere_mysql.dmp
# Follow standard ADempiere installation process
$ <ADEMPIERE_HOME>/RUN_setup.sh
# Start ADempiere Server
$ <ADEMPIERE_HOME>/utils/RUN_Server2.sh
# Start ADempeire Swing client
$ <ADEMPIERE_HOME>/RUN_Adempiere.sh
::: Enjoy ADempiere! :::
Regards,
Trifon
Carlos Ruiz
2010-09-16
Hi Trifon, thanks for your effort - I have some comments based on visual code peer review (still not testing).
Where do you prefer to receive such feedback?
Regards,
Carlos Ruiz
Trifon (An ADempiere founder)
2010-09-16
Hi Carlos,
Where do you prefer to receive such feedback?
I'm Beta tester of sf.net next version of features, so would like to use:
https://sourceforge.net/p/adempiere-mysql/tickets/
or
https://sourceforge.net/p/adempiere-mysql/discussion/
Regards,
Trifon
AZZAM OTHMAN
2010-09-16
Hi Trifon,
This is a recognized work . Thanks.
Can we run this version of Adempiere under Windows Server 2003/2008 ?
Regards.
Azzam
Carlos Ruiz
2010-09-16
Trifon (An ADempiere founder)
2010-09-17
@Azzam
Can we run this version of Adempiere under Windows Server 2003/2008 ?
Yes.
Please give it a try and report back your findings.
@Carlos
done -> https://sourceforge.net/p/adempiere-mysql/tickets/1/
Thank you! Really valuable feedback! I have changed and fixed most of the points.
Created ticket for the Open points.
Regards,
Trifon
Ramiro Vergara
2010-09-17
Trifon,
Great effort.
It is even better to see the deveopment community proactively in action
Regards
Ramiro
Orlando Curieles
2010-09-21
Thanks, Trifon great work…. i testing now !!!!
Younex
2010-09-23
Very good work trifon, thank you.
Regards,
Younes
Mandeep Mavi
2010-10-12
Hi Trifon, i am unable to dump Adempiere_mysql.dmp. i am using WAMP server MySQL Version :5.1.36 , PHPAdmin 3.2.0.1 on windows 7.
Trifon (An ADempiere founder)
2010-10-13
HI Mandeep,
thank you for your feedback.
I saw your ticket and i have responded there.
Regards,
Trifon
Trifon (An ADempiere founder)
2010-10-22
To All ADempiere and MySQL Fans,
I'm glad to inform you that Development effort is at it's end. After 4 months constant work all MySQL Porting task are finished and source code is ready to be committed into trunk.
As of now all source changes are available in:
https://sourceforge.net/p/adempiere-mysql/svn/LATEST/tree/
At this moment we have MySQL Dump for ADempiere version 3.6.0. Last version of the DB dump will be published soon.
MySQL Dump for Trunk version can be created and committed when community agrees. After MySQL dump is committed in trunk all developers will need to synchronise with the last version of trunk in order to use functionality which generates migration scripts for MySQL DB.
I would like to pay attention at this point. After MySQL Port is integrated in in trunk all developers will need to commit SQL migration scripts for three DBs(Oracle, PostgreSQL and MySQL). Of course SQL migration scripts are generated automatically by ADempiere, but all contributions which are waiting for inclusion in trunk and have SQL migration scripts only for Oracle and PostgreSQL will need additional effort to create SQL migration scripts for MySQL.
That's why i would like to give one week time period when developers can commit their patches and migration scripts in trunk. After that i will create MySQL dump.
Today is 22 of Oct 2010. On 30.Oct. i would like to commit MySQL dump for trunk.
Please use this time to comment on this thread and commit your DB changes.
Regards,
Trifon
Ramiro Vergara
2010-10-22
Trifon
Congratulation for your effort Trifon.
SkySQL will bring new life to MySQL so your contribution is very timely.
Regards
Ramiro
Daniel Tamm
2010-10-25
I'm impressed by the effort put into this!
I have some minor concerns though. I don't see how MySQL brings a business advantage to the Adempiere solution. PostgreSQL is free and Open Source (the open source choice) and we have the non-free Oracle solution. MySQL is owned by Oracle so it doesn't bring anything extra AFAIK.
I don't mind an extra database, What bothers me a bit is that if MySQL is added to trunk it will be even more time consuming to maintain functions that depend on database specifics. I'm afraid it will cause trunk development to go even slower than now.
I think that the MySQL port should be maintained by a MySQL-maintainer if it is added to trunk. Even though I can make scripts for all three databases I don't feel very happy about having three Adempiere test-instances to test every time I need to make database adjustments.
Just a few thoughts…
/Daniel Tamm
Teo Sarca
2010-10-26
Hi Trifon,
Congratulations and many thanks for this great contribution. I am sure this feature can open some new opportunities on small businesses market.
I would like to "use" this fact for calling ADempiere community to focus on how can we improve our migration tools. At this moment we are using migration scripts (oracle and postgres) to migrate our database changes. Each contribution is enforced to provide both of them, in order to maintain compatibility between adempiere on oracle and adempiere on postgresql, even if initial contributors in most of the cases are using only one database. This is fine and understandable and the overhead is not so big. But extending our supported databases list will introduce more and more overhead and more and more bugs.
I am aware that a right tool for managing database changes is a long term target but in meantime, why not improving the Convert classes (from Convert layer) to generate the database specific migration scripts just in time. Just a draft idea.
WDYT?
Best regards,
Teo Sarca
Trifon (An ADempiere founder)
2010-10-26
Hi Teo,
Thank's for the nice words!
I am aware that a right tool for managing database changes is a long term target but in meantime, why not improving the Convert classes (from Convert layer) to generate the database specific migration scripts just in time. Just a draft idea.
I like your idea and i would love to see it implemented in ADempiere. For MySQL Port scope of the tasks was to change current SQL generation class to support MySQL DB. If community finds way to support one better way to manage migration scripts i would do not mind and would work on it.
Regards,
Trifon
Victor Perez Juarez
2010-10-26
HI Trifon!
I think the solution is very simple
you need add a new parameter into Convert.logMigrationScript(oraStatement, null); and enable for mysql port
public static void logMigrationScript(String oraStatement, String pgStatement) {
// Check AdempiereSys
// check property Log migration script
boolean logMigrationScript = Ini.isPropertyBool(Ini.P_LOGMIGRATIONSCRIPT);
if (logMigrationScript) {
String home = System.getProperty("ADEMPIERE_HOME");
File file = new File(home);
if (dontLog(oraStatement))
return;
// Log oracle and postgres migration scripts in temp directory
// migration_script_oracle.sql and migration_script_postgresql.sql
try {
if (tempFileOr == null) {
File fileNameOr = File.createTempFile("migration_script_", "_oracle.sql", file);
tempFileOr = new FileOutputStream(fileNameOr, true);
writerOr = new BufferedWriter(new OutputStreamWriter(tempFileOr, "UTF8"));
}
writeLogMigrationScript(writerOr, oraStatement);
} catch (IOException e) {
e.printStackTrace();
}
try {
if (pgStatement == null) {
// if oracle call convert for postgres before logging
Convert_PostgreSQL convert = new Convert_PostgreSQL();
String r = convert.convert(oraStatement);
pgStatement = r;
}
if (tempFilePg == null) {
File fileNamePg = File.createTempFile("migration_script_", "_postgresql.sql",file);
tempFilePg = new FileOutputStream(fileNamePg, true);
writerPg = new BufferedWriter(new OutputStreamWriter(tempFilePg, "UTF8"));
}
writeLogMigrationScript(writerPg, pgStatement);
} catch (IOException e) {
e.printStackTrace();
}
}
}
kind regards
Victor Perez
www.e-evolution.com
Trifon (An ADempiere founder)
2010-10-26
Hi Victor,
I think the solution is very simple you need add a new parameter into Convert.logMigrationScript(oraStatement, null); and enable for mysql port
Thank's for your support.
This is already done with few other changes in order to generate SQL migration scripts for MySQL DD.
Teo was talking about something else.
Regards,
Trifon
Zeeshan Hasan
2010-11-05
> SkySQL will bring new life to MySQL so your contribution is very timely.
> Regards
>Ramiro
You were right, Ramiro:
http://www.h-online.com/open/news/item/Oracle-raises-prices-for-MySQL-1130988.html
Sysnova sponsored Trifon to work on mysql mainly to make it easier to install and maintain for microfinance customers in Bangladesh who want to use it with Mifos (http://www.mifos.org). I hope others find it useful as well.
Regards,
Zeeshan
ADAXA
2010-11-05
Hi Zeeshan,
If ADempiere can be used to support the work of organisations like Mifos, or organisations working with them, that would be excellent. Good luck with the project.
regards
Steven
Trifon (An ADempiere founder)
2010-11-13
Dear ADempiere and MySQL fans,
today i finally managed to commit ADempiereMySQL-360 build.
Build can be downloaded from:
https://sourceforge.net/p/adempiere-mysql/svn/47/tree/dist/mysql-dist/
Installation procedure is much more simplified now. Steps which you need to do are:
Prerequisites: - SUN JDK - MySQL 5.x # Change my.cnf file. # Set tables names to be lower case. # Enable recursive stored procedures. # Enable MySQL ANSI mode. $ sudo vim /etc/mysql/my.cnf lower_case_table_names=1 max_sp_recursion_depth=128 sql_mode='ANSI' # Restart MySQL server $ sudo /etc/init.d/mysql restart # Follow standard ADempiere installation process $ <ADEMPIERE_HOME>/RUN_setup.sh # Start ADempiere Server $ <ADEMPIERE_HOME>/utils/RUN_Server2.sh # Start ADempeire Swing client $ <ADEMPIERE_HOME>/RUN_Adempiere.sh
Next step is synchronization of MySQL changes with ADempiere trunk.
::: Enjoy ADempiere! :::
Peter
2010-11-14
Hi Trifon,
A bit behind the times. Congratulations. Well done.
Peter
Trifon (An ADempiere founder)
2010-11-14
@Peter,
thank you!
It is a always a pleasure to contribute to ADempiere!
All the best,
Trifon
FINA PM
2010-11-14
Great work was done .
Is Adempiere@MySQL better? faster? and/or cheaper?
Thanks.
Trifon (An ADempiere founder)
2010-11-14
@Fina, thank you!
>Is Adempiere@MySQL better? faster? and/or cheaper?
Well, ADempiere on OracleXE and on PostgreSQL costs 0.0, so can't make it cheaper :)
I would say ADempiere@MySQL helps to increase adoption of the applications.
Regards,
Trifon