<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Oct 30, 2015 at 12:51 PM, Hika van den Hoven <span dir="ltr"><<a href="mailto:hikavdh@gmail.com" target="_blank">hikavdh@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hoi Mike,<br>
<br>
Friday, October 30, 2015, 7:21:35 PM, you wrote:<br>
<br>
> On Mon, Oct 26, 2015 at 1:46 PM, Hika van den Hoven <<a href="mailto:hikavdh@gmail.com">hikavdh@gmail.com</a>><br>
> wrote:<br>
<br>
>> Try:<br>
>> SELECT s1.value, s1.data AS old, s2.data AS new<br>
>> FROM settings as s1 JOIN settings as s2<br>
>> ON (s1.value = s2.value)<br>
>> WHERE s1.hostname = '<existing frontend name>'<br>
>> AND s2.hostname = '<new frontend name>'<br>
>> AND s1.data <> s2.data;<br>
>><br>
>> It lists all the differences between the two hosts in settings.<br>
>> If you have started the new host at least ones it will be filled with<br>
>> the defaults. It however does not show settings that exist only for<br>
>> one of the hosts.<br>
>> <<a href="https://forum.mythtv.org" rel="noreferrer" target="_blank">https://forum.mythtv.org</a>><br>
>><br>
<br>
> Thanks Hika. Your query worked nicely for me. In case anyone else is<br>
> interested I wrote the following bash script to use this query and compare<br>
> settings between two hosts.<br>
<br>
> #!/bin/bash<br>
<br>
> HOSTNAME1="$1"<br>
> HOSTNAME2="$2"<br>
<br>
> # Get info from config.xml<br>
> DBHOST=$(/usr/local/bin/getConfig.pl Database Host)<br>
> DBNAME=$(/usr/local/bin/getConfig.pl Database DatabaseName)<br>
> USER=$(/usr/local/bin/getConfig.pl Database UserName)<br>
> PASSWD=$(/usr/local/bin/getConfig.pl Database Password)<br>
<br>
<br>
> if [ "$HOSTNAME1" = "" -o "$HOSTNAME2" = "" ] ; then<br>
> echo "usage: $0 <hostname1> <hostname2>"<br>
> exit 1<br>
> fi<br>
<br>
> mysql -t -h $DBHOST --user=$USER --password=$PASSWD $DBNAME > /tmp/$$.tmp<br>
> <<!!<br>
> select s1.value,s1.data AS $HOSTNAME1, s2.data AS $HOSTNAME2 FROM settings<br>
> AS s1 JOIN settings AS s2 ON (s1.value = s2.value) WHERE s1.hostname =<br>
> '$HOSTNAME1' AND s2.hostname = '$HOSTNAME2' AND s1.data <> s2.data;<br>
> quit<br>
> !!<br>
> cat /tmp/$$.tmp<br>
> rm -f /tmp/$$.tmp<br>
<br>
> You'll get output like:<br>
<br>
> +----------------------+-----------------------+---------------------------+<br>
> | value | nucfrontend | nuci3frontend<br>
> +----------------------+-----------------------+---------------------------+<br>
> | AudioOutputDevice | ALSA:default:CARD=PCH | ALSA:hdmi:CARD=HDMI,DEV=0 |<br>
> | ChannelGroupDefault | 1 | -1<br>
> | LircSocket | /dev/lircd | /var/run/lirc/lircd |<br>
> +----------------------+-----------------------+---------------------------+<br>
<br>
Nice! You should however mention the limitations. Only settings that<br>
exist for both hosts and that are not equal are shown.<br></blockquote></div><br></div><div class="gmail_extra">You could fix that with a LEFT JOIN, then all the settings for HOSTNAME1 which do not exist for HOSTNAME2 would show as NULL for HOSTNAME2.<br><br></div><div class="gmail_extra">Karl<br></div></div>