content: -----------------------------------------------------------
  -- |
  -- 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 /= ""]
  