    -----------------------------------------------------------
    -- |
    -- Module      :  DBSpecToDatabase
    -- Copyright   :  HWT Group (c) 2004, haskelldb-users@lists.sourceforge.net
    -- License     :  BSD-style
    --
    -- Maintainer  :  haskelldb-users@lists.sourceforge.net
    -- Stability   :  experimental
    -- Portability :  non-portable
    --
    -- Connects to a database and generates stuff in it according
    -- to what's inside the DBSpec.
    --
    --
    -----------------------------------------------------------
    module Database.HaskellDB.DBSpec.DBSpecToDatabase
        (dbSpecToDatabase,tInfoToTable)
        where

    import Database.HaskellDB.Database
    import Database.HaskellDB.FieldType
    import Database.HaskellDB.DBSpec.DBInfo

    -- | Converts a DBInfo to a real life Database, note that the database must
    -- exist for this to work
    dbSpecToDatabase :: Database -- ^ A Database
    		 -> DBInfo -- ^ The DBInfo to generate from
    		 -> IO ()
    dbSpecToDatabase db = mapM_ (tInfoToTable db) . tbls

    -- | Create a database table specified by a 'TInfo'.
    tInfoToTable :: Database -> TInfo -> IO ()
    tInfoToTable db t = createTable db (tname t) (tInfoCols t)

    tInfoCols :: TInfo -> [(String,FieldDesc)]
    tInfoCols t = [(cname c, descr c) | c <- cols t, cname c /= ""]