if test ! -e $conf_file; then
# Create configuration database.
ovsdb-tool -vANY:console:emer create $conf_file $schema_file
- else
- # If schema version changed, then back up the old version.
- old_ver=`ovsdb-tool db-version "$conf_file"`
- if test "X$old_ver" != "X$schema_ver"; then
- cp "$conf_file" "$conf_file.backup$old_ver"
- fi
+ elif test "X`ovsdb-tool needs-conversion $conf_file $schema_file`" != Xno; then
+ # Back up the old version.
+ version=`ovsdb-tool db-version "$conf_file"`
+ cksum=`ovsdb-tool db-cksum "$conf_file" | awk '{print $1}'`
+ cp "$conf_file" "$conf_file.backup$version-$cksum"
# Upgrade or downgrade schema and compact database.
ovsdb-tool -vANY:console:emer convert $conf_file $schema_file
action "Creating empty database $OVSDB_SERVER_DB" true
$ovsdb_tool -vANY:console:emer create "$OVSDB_SERVER_DB" "$VSWITCHD_OVSDB_SCHEMA"
- else
- # If schema version changed, then back up the old version.
- oldver=`$ovsdb_tool db-version "$OVSDB_SERVER_DB"`
- if test "X$oldver" != "X$schemaver"; then
- backup=$OVSDB_SERVER_DB.backup$oldver
- action "Backing up $OVSDB_SERVER_DB in $backup before converting from schema version \"$oldver\" to \"$schemaver\"" true
- cp "$OVSDB_SERVER_DB" "$backup"
- fi
+ elif test "X`$ovsdb_tool needs-conversion "$OVSDB_SERVER_DB" "$VSWITCHD_OVSDB_SCHEMA"`" != Xno; then
+ # Back up the old version.
+ version=`$ovsdb_tool db-version "$OVSDB_SERVER_DB"`
+ cksum=`$ovsdb_tool db-cksum "$OVSDB_SERVER_DB" | awk '{print $1}'`
+ cp "$OVSDB_SERVER_DB" "$OVSDB_SERVER_DB.backup$version-$cksum"
# Upgrade or downgrade schema and compact database.
$ovsdb_tool -vANY:console:emer convert "$OVSDB_SERVER_DB" "$VSWITCHD_OVSDB_SCHEMA"