SQL::Loader is intended as a development tool. The way we use it is to map out a database schema for a project on our intranet and, as it changes, or we just need to recreate it on a new box, we use this module to generate the schema from the intranet page and load it into a database. Saves dumping the schema from some other box somewhere ( that noone knows whether is current or not :) and saves creating or modifying a schema manually during the development process. When multiple developers are working on a project, it should assist in ensuring they are 'all on the same page', schema wise at least :) DANGER! DANGER! If you are using this module it is assumed you are doing so in a development environment, say, the first time you build a new db, the schema has changed and now you're recreating your db, etc. This module DROPS all tables in the database you specify and recreates it from scratch from the URL you pass to it. For SQL::Loader to work, the page it parses must consist of html tables that represent tables in a database schema, in the following format:
$order $column_name $column_type $additional_info
The first three columns of the table should be fairly self explanitary. $order is simply the order of the columns in the resulting table. $column_name will be used as the name of the column in the table created. $column_type will be the type set for that column - field can contain any valid SQL type information. $addtional_info is currently only used for one purpose; to specify whether to make a field a PRIMARY KEY. This is acheived by placing the case-sensitive letters 'PK' anywhere within the third column. Preceeding each table must be a title and a keyword 'Purpose' ( note case ), each on a single line. The title is considered anything inside

tags. This will become the table title. The 'Purpose' keyword must follow the title and be enclosed within

tags. The idea of the Purpose keyword is to indicate that the table found following is valid and should be parsed and included in the database schema being generated. For example, if you are designing a new table that is still experimental and do not want it to be included in the schema next time someone generates it, simply ommit the Purpose keyword. When a title and purpose have been found, the next encountered will be parsed as a table to be included in the database schema and loaded into the database. NOTES: A $column name of 'id' is automatically made type PRIMARY KEY AUTO_INCREMENT. This should normally be the first column ( ie; in the first row of your html table ) if you want to use this feature. Your HTML page can have pretty much any code you like bar any

and

tags that will confuse this module, especially if the are followed by a table. Your best bet is to not have any other

or

tags on the page to be parsed. An example script 'sql_loader_example.pl' is included in this distribution.