Hi,

I created a script (Unix/Linux only at the moment) called 'mkdb' for use with our application deployment. We use the Firebird RDBMS and thought this might come in handy for others as well.

It creates a Firebird database, creates the tables. Optionally it creates Views, applies table rights and inserts default data. All database information is read from sql script files: create.sql, views.sql, rights.sql, defaults.sql

The script (mkdb) also takes three optional parameters:
  - database location
  - database username
  - database password


I hope someone finds this useful. :)


Regards,
  - Graeme -


_______________________________________________________
fpGUI - a cross-platform GUI toolkit using Free Pascal
http://opensoft.homeip.net/fpgui/


#!/bin/sh
#
# Script to create a Firebird database, apply permissions and 
# to fill it with data.
#
# The script accepts optional arguments: 
#    - A database to connect to. (default is setup below)
#    - Database username (default 'SYSDBA')
#    - Database password (default 'masterkey')
#
# The script looks for the following sql scrip files and executes them
#    - create.sql    (mandatory)
#    - views.sql     (optional)
#    - rights.sql    (optional)
#    - defaults.sql  (optional)
#


# Collect the database
database="localhost:/home/graemeg/programming/data/m2empty.fdb"
#database=192.168.0.1:M2
if [ -n "$1" ]; then
  database=$1
fi

# Database login information
user=SYSDBA
if [ -n "$2" ]; then
  user=$2
fi
passwd=masterkey
if [ -n "$3" ]; then
  passwd=$3
fi

# Choose one of the following:
ISQL="isql -q -d $database -u $user -p $passwd"
#ISQL="/opt/firebird/bin/isql -q -d $database -u $user -p $passwd"


##############################################################
#
#   You shouldn't need to edit after this.
#

echo -n "Creating the database $database ..."
${ISQL} << EOF
set sql dialect 3;
CREATE DATABASE "$database";
commit;
EOF
if [ ! $? = 0 ]; then
  echo "Failed."
else
  echo "Done."
fi

echo -n "Creating the tables in database ..."
${ISQL} << EOF
connect '$database' user '$user' password '$passwd';
input create.sql;
commit;
EOF
if [ ! $? = 0 ]; then
  echo "Failed."
else
  echo "Done."
fi

if [ -e ./views.sql ]; then
        echo -n "Creating the views in database ..."
        ${ISQL} << EOF
        connect '$database' user '$user' password '$passwd';
        input views.sql;
        commit;
EOF
        if [ ! $? = 0 ]; then
                echo "Failed."
        else
                echo "Done."
        fi
fi

if [ -e ./rights.sql ]; then
        echo -n "Applying table permissions ..."
        ${ISQL} << EOF
        connect '$database' user '$user' password '$passwd';
        input rights.sql;
        commit;
EOF
        if [ ! $? = 0 ]; then
                echo "Failed."
        else
                echo "Done."
        fi
fi

if [ -e ./defaults.sql ]; then
        echo -n "Inserting default data ..."
        ${ISQL} << EOF
        connect '$database' user '$user' password '$passwd';
        input defaults.sql;
        commit;
EOF
        if [ ! $? = 0 ]; then
                echo "Failed."
        else
                echo "Done."
        fi
fi


# END

_______________________________________________
Lazarus mailing list
[email protected]
http://www.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to