Find Jobs
Hire Freelancers

PHP/MySQL Upgrade script

$100-150 USD

Cancelled
Posted over 18 years ago

$100-150 USD

Paid on delivery
I want a PHP program to syncronize a .sql file and a database. A kind of version control for MySQL database when I release new version of my programs with release-history. You need to be a skilled PHP programmer with at least 3 years of coding. See **Deliverables** below for requirements. ## Deliverables _**Three files needed:**_ DB_EXPORT.PHP. DB_UPGRADE.PHP. VERSION_CHECK_SERVER.PHP. _**[login to view URL]** (Distributed to all clients)_ 1. Version check: Check to see if **Require_DB_Version** in the .sql file matches the **Current_DB_Version **in a mysql table named service_data.** ** This is to ensure that no-one upgrades a very old database. Also, a check is done to compare **Require_Program_Version** against **Current_Program_Version. ** 2. If that is OK, all fields in a .sql file (generated by your [login to view URL]) is compared to the current database and compares every single field (auto-increment property, field-type, field, length,default-value, table-key and that all tables exists). 3. If there are any differences between .sql file and db fields: A checkbox checked by default appears for each field that has difference, so that a user has the option to skip certain fixes if he or she has done some custom mods. This list shall be compact, only a line for each change. Also, a silent option that does all tasks without asking. 4. When user clicks 'Upgrade', the database gets the same structure as sql file and all fields not skipped in previous step is changed with regards to auto-increment values, field-type, length.. etc. It is **extremly important** that the upgrade script checks that all these executed sql commands in fact is done afterwards. There must also be an ignore list, since fields named e_1 to e_255 is user-created extra fields they are allowed to have and that is different for each client. 5. When Upgrade is pushed, an entry in the field **Current_DB_Version **in service_data table shows what version the user has got of the database after the upgrade, if the upgrade was OK. You should do a backup from the server before doing any mysql operation (can use mysql-dump, or a php script), just to add a little more safety. 6. Any custom sql commands also included in the .sql file is done before or after syncronize between sql file fields and database. This can be sql-commands to move fields into a new field. ** _DB_EXPORT.PHP_** _(On my server)_ An administrative program to create the sql file. The sql commands is stored in a mysql table for version-history and generates a physical file on my command. - A drop down to specify program I want to create sql file for, or let me create new project that will appear in the dropdown. - A SQL textarea that lets me add sql commands that I can´t simply use compare on (for instance move data from one column to another one). These commands is run after and/or before sql syncronize. The sql textarea sql is saved in database for later generation into the .sql file. - Input text field named **Require_DB_Version**, and one field named **Require_Pogram_Version** (found in service_data). - A list of all database-scripts in database divided on all my programs and program version. - When I click "GENERATE SQL" on a certain program and database-version, all sql data-structure from my current development program is dumped along with my custom sql changes from the textarea into the .sql file I put into a folder with the program I distribute. This way, I can ensure that all clients have all fields needed. I struggle today with people not having up to date database when they contact support. Also, a function to check my server to see if I have newer .sql file (version check) than they have would also be nice in the [login to view URL] program. CONTRACT: 1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done. 2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables): a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment. b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request. 3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement). ## Platform IE, Firefox. Windows and Linux alike both on server and customer.
Project ID: 3246255

About the project

2 proposals
Remote project
Active 18 yrs ago

Looking to make some money?

Benefits of bidding on Freelancer

Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs
2 freelancers are bidding on average $96 USD for this job
User Avatar
See private message.
$85 USD in 35 days
5.0 (25 reviews)
4.9
4.9
User Avatar
See private message.
$106.25 USD in 35 days
5.0 (4 reviews)
1.4
1.4

About the client

Flag of NORWAY
OSLO, Norway
5.0
75
Payment method verified
Member since Jun 14, 2002

Client Verification

Thanks! We’ve emailed you a link to claim your free credit.
Something went wrong while sending your email. Please try again.
Registered Users Total Jobs Posted
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Loading preview
Permission granted for Geolocation.
Your login session has expired and you have been logged out. Please log in again.