Magellan Linux

Diff of /alx-src/branches/alx-web-070/scripts/sql-schema/mcore-sql-schema.sh

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 8495 by niro, Fri Feb 5 13:30:51 2016 UTC revision 8502 by niro, Fri Feb 5 14:32:57 2016 UTC
# Line 160  sql_add_column() Line 160  sql_add_column()
160   *auto_increment*) opts="${opts//auto_increment}"; autoincrement="${column} ${opts}" ;;   *auto_increment*) opts="${opts//auto_increment}"; autoincrement="${column} ${opts}" ;;
161   esac   esac
162    
163   mysqldo "ALTER TABLE ${MCORE_SQL_DB}.${table} ADD ${column} ${opts}) AFTER ${after_column};" || die "add column '${table}'"   mysqldo "ALTER TABLE ${MCORE_SQL_DB}.${table} ADD ${column} ${opts} AFTER ${after_column};" || die "add column '${table}'"
164   done   done
165    
166   if [[ -n ${primary} ]]   if [[ -n ${primary} ]]
# Line 189  sql_modify_column() Line 189  sql_modify_column()
189   local column   local column
190   local autoincrement   local autoincrement
191   local primary   local primary
192     local current_primary
193    
194   table="${TABLE_DEFINITION[0]}"   table="${TABLE_DEFINITION[0]}"
195   count="${#TABLE_DEFINITION[*]}"   count="${#TABLE_DEFINITION[*]}"
# Line 209  sql_modify_column() Line 210  sql_modify_column()
210   *auto_increment*) opts="${opts//auto_increment}"; autoincrement="${column} ${opts}" ;;   *auto_increment*) opts="${opts//auto_increment}"; autoincrement="${column} ${opts}" ;;
211   esac   esac
212    
213   mysqldo "ALTER TABLE ${MCORE_SQL_DB}.${table} MODIFY ${column} ${opts});" || die "modify table '${table}'"   mysqldo "ALTER TABLE ${MCORE_SQL_DB}.${table} MODIFY ${column} ${opts};" || die "modify table '${table}'"
214   done   done
215    
216   if [[ -n ${primary} ]]   if [[ -n ${primary} ]]
217   then   then
218   mysqldo "ALTER TABLE ${MCORE_SQL_DB}.${table} ADD PRIMARY KEY (${primary});" || die "adding primary key to table '${table}'"   # only run this if the primary key is not already the same column
219     i=( $(mysqldo 'SHOW COLUMNS FROM '${MCORE_SQL_DB}.${table}' WHERE `Key`="PRI"') )
220     current_primary="${i[0]}"
221     if [[ ${current_primary} != ${primary} ]]
222     then
223     mysqldo "ALTER TABLE ${MCORE_SQL_DB}.${table} ADD PRIMARY KEY (${primary});" || die "adding primary key to table '${table}'"
224     fi
225   fi   fi
226   if [[ -n ${autoincrement} ]]   if [[ -n ${autoincrement} ]]
227   then   then
# Line 279  create_database() Line 286  create_database()
286  {  {
287   create_database_schema   create_database_schema
288    
289   # update database version   # update database schema version
290   mysqldo "INSERT INTO ${MCORE_SQL_DB}.meta(version) VALUES ('${MCORE_SQL_DB_VERSION}') ON DUPLICATE KEY UPDATE version='${MCORE_SQL_DB_VERSION}';" || die "updating version"   mysqldo "INSERT INTO ${MCORE_SQL_DB}.meta_schema(version) VALUES ('${MCORE_SQL_DB_SCHEMA_VERSION}') ON DUPLICATE KEY UPDATE version='${MCORE_SQL_DB_SCHEMA_VERSION}';" || die "updating schema version"
291  }  }
292    
293  update_database()  update_database()
294  {  {
295   local current_sql_db_version   local current_sql_db_schema_version
296   local i   local i
297    
298   current_sql_db_version=$(mysqldo "SELECT MAX(version) from meta;")   current_sql_db_schema_version=$(mysqldo "SELECT MAX(version) from meta_schema;")
299    
300   if [[ ${current_sql_db_version} = ${MCORE_SQL_DB_VERSION} ]]   if [[ ${current_sql_db_schema_version} = ${MCORE_SQL_DB_SCHEMA_VERSION} ]]
301   then   then
302   echo "Database is already up to date"   echo "Database is already up to date"
303   return 0   return 0
304   fi   fi
305    
306   # run every update_to_database_version_X script which exist up to version MCORE_SQL_DB_VERSION   # run every update_to_database_version_X script which exist up to version MCORE_SQL_DB_SCHEMA_VERSION
307   for i in $(seq $((${current_sql_db_version}+1)) ${MCORE_SQL_DB_VERSION})   for i in $(seq $((${current_sql_db_schema_version}+1)) ${MCORE_SQL_DB_SCHEMA_VERSION})
308   do   do
309   if [[ -n $(typeset -f update_to_database_schema_version_${i}) ]]   if [[ -n $(typeset -f update_to_database_schema_version_${i}) ]]
310   then   then
# Line 306  update_database() Line 313  update_database()
313   fi   fi
314   done   done
315    
316   # update database version   # update database schema version
317   mysqldo "INSERT INTO ${MCORE_SQL_DB}.meta(version) VALUES ('${MCORE_SQL_DB_VERSION}') ON DUPLICATE KEY UPDATE version='${MCORE_SQL_DB_VERSION}';" || die "updating version"   mysqldo "INSERT INTO ${MCORE_SQL_DB}.meta_schema(version) VALUES ('${MCORE_SQL_DB_SCHEMA_VERSION}') ON DUPLICATE KEY UPDATE version='${MCORE_SQL_DB_SCHEMA_VERSION}';" || die "updating schema version"
318  }  }
319    
320  fill_database()  fill_database()
321  {  {
322     local current_sql_db_values_version
323     local i
324    
325     current_sql_db_values_version=$(mysqldo "SELECT MAX(version) from meta_values;")
326    
327     if [[ ${current_sql_db_values_version} = ${MCORE_SQL_DB_VALUES_VERSION} ]]
328     then
329     echo "Database values are already up to date"
330     return 0
331     fi
332    
333   create_database_values   create_database_values
334     # update database values version
335     mysqldo "INSERT INTO ${MCORE_SQL_DB}.meta_values(version) VALUES ('${MCORE_SQL_DB_VALUES_VERSION}') ON DUPLICATE KEY UPDATE version='${MCORE_SQL_DB_VALUES_VERSION}';" || die "updating values version"
336  }  }
337    
338  case $1 in  case $1 in

Legend:
Removed from v.8495  
changed lines
  Added in v.8502