private void makeAlterTable(Class<?> c, Connection connection) throws SQLException {

		StringBuilder query = new StringBuilder();

		query.append("ALTER TABLE `" + mysqlDatabase + "` . `"
				+ ORM.getTableName(c) + "` ");

		Boolean first = true;
		for (Field objectField : c.getFields()) {
			// The field must be a persistent data
			if (Modifier.isVolatile(objectField.getModifiers()))
				continue;

			// Add the field name
			if (first) {
				query.append("CHANGE `" + getFieldName(objectField) + "` `" + getFieldName(objectField) + "` ");
				first = false;
			} else {
				query.append(", CHANGE `" + getFieldName(objectField) + "` `" + getFieldName(objectField) + "` ");
			}

			// Get the field type
			JavaSqlTypeBindItem sqlConvertedTypeInfo = JavaSQLTypeImpl.typesMapping
					.getSqlTypeInfo(objectField.getType());
			if (sqlConvertedTypeInfo.defaultSize != null) {
				query.append(sqlConvertedTypeInfo.getSQLTypeName() + "("
						+ sqlConvertedTypeInfo.defaultSize + ")");
			} else {
				query.append(sqlConvertedTypeInfo.getSQLTypeName());
			}
			// typesMapping.getSqlType(objectField.getType());

			if(null != objectField.getAnnotation(ORM_AUTO_INCREMENT.class)){
				query.append(" AUTO_INCREMENT");
			}
			if (null != objectField.getAnnotation(ORM_NOT_NULL.class)) {
				query.append(" NOT NULL");
			}
			if (null != objectField.getAnnotation(ORM_PK.class)) {
				query.append(" PRIMARY KEY");
			}
			if (null != objectField.getAnnotation(ORM_UNIQUE.class)) {
				query.append(" UNIQUE");
			}
			// query.append("NOT NULL ");

		}

		System.out.println(query.toString());

		Statement st = connection.createStatement();
		st.execute(query.toString());
		st.close();
		
	}