Andreas Preikschat has proposed merging lp:~googol-hush/openlp/docs into lp:openlp.
Requested reviews: OpenLP Core (openlp-core) For more details, see: https://code.launchpad.net/~googol-hush/openlp/docs/+merge/46628 Merged (not redundant) parts of documentation/SongFormat.txt into the songs/lib/db module and removed it. Added the media_files and media_files_songs tables (although the doc is not complete there). -- https://code.launchpad.net/~googol-hush/openlp/docs/+merge/46628 Your team OpenLP Core is requested to review the proposed merge of lp:~googol-hush/openlp/docs into lp:openlp.
=== removed file 'documentation/SongFormat.txt' --- documentation/SongFormat.txt 2010-09-14 18:18:47 +0000 +++ documentation/SongFormat.txt 1970-01-01 00:00:00 +0000 @@ -1,124 +0,0 @@ -openlp.org 2.x Song Database Structure -======================================================================== - -Introduction ------------- -The song database in openlp.org 2.x is similar to the 1.x format. The -biggest differences are the addition of extra tables, and the use of -SQLite version 3. - -The song database contains the following tables: -- authors -- authors_songs -- song_books -- songs -- songs_topics -- topics - - -"authors" Table ---------------- -This table holds the names of all the authors. It has the following -columns: - -* id -* first_name -* last_name -* display_name - - -"authors_songs" Table ---------------------- -This is a bridging table between the "authors" and "songs" tables, which -serves to create a many-to-many relationship between the two tables. It -has the following columns: - -* author_id -* song_id - - -"song_books" Table ------------------- -The "song_books" table holds a list of books that a congregation gets -their songs from, or old hymnals now no longer used. This table has the -following columns: - -* id -* name -* publisher - - -"songs" Table -------------- -This table contains the songs, and each song has a list of attributes. -The "songs" table has the following columns: - -* id -* song_book_id -* title -* lyrics -* verse_order -* copyright -* comments -* ccli_number -* song_number -* theme_name -* search_title -* search_lyrics - - -"songs_topics" Table --------------------- -This is a bridging table between the "songs" and "topics" tables, which -serves to create a many-to-many relationship between the two tables. It -has the following columns: - -* song_id -* topic_id - - -"topics" Table --------------- -The topics table holds a selection of topics that songs can cover. This -is useful when a worship leader wants to select songs with a certain -theme. This table has the following columns: - -* id -* name - - -The lyrics definition (more or less similar to interformat to/from ChangingSong -The tags <i></i><b></b><u></u> can also be used within the lyrics test. - -! Please note that this format has been checked at http://validator.w3.org/#validate_by_upload - -<lyrics lang="en_US"> - <title>Amazing Grace</title> - <verse name="v1"> - <theme>name of verse specific theme (optional)</theme> - <comment>any text (optional)</comment> - <part name="men"> - Amazing grace, how ... - </part> - <part name="women"> - A b c - D e f - </part> - ... - </verse> - <verse name="c"> - <theme>name of verse specific theme (optional)</theme> - <comment>any text (optional)</comment> - ... - </verse> -</lyrics> -<lyrics lang="de_DE"> - <title>Erstaunliche Anmut</title> - <verse name="v1"> - Erstaunliche Anmut, wie - ... - </verse> - <verse name="c"> - ... - </verse> -</lyrics> === modified file 'openlp/plugins/songs/lib/db.py' --- openlp/plugins/songs/lib/db.py 2011-01-17 00:52:00 +0000 +++ openlp/plugins/songs/lib/db.py 2011-01-18 16:47:10 +0000 @@ -39,6 +39,7 @@ """ pass + class Book(BaseModel): """ Book model @@ -47,30 +48,115 @@ return u'<Book id="%s" name="%s" publisher="%s" />' % ( str(self.id), self.name, self.publisher) + class MediaFile(BaseModel): """ MediaFile model """ pass + class Song(BaseModel): """ Song model """ pass + class Topic(BaseModel): """ Topic model """ pass + def init_schema(url): """ - Setup the songs database connection and initialise the database schema + Setup the songs database connection and initialise the database schema. ``url`` The database to setup + + The song database contains the following tables: + * authors + * authors_songs + * media_files + * media_files_songs + * song_books + * songs + * songs_topics + * topics + + *authors* Table + --------------- + This table holds the names of all the authors. It has the following + columns: + * id + * first_name + * last_name + * display_name + + *authors_songs* Table + --------------------- + This is a bridging table between the *authors* and *songs* tables, which + serves to create a many-to-many relationship between the two tables. It + has the following columns: + * author_id + * song_id + + *media_files* Table + ------------------- + * id + * file_name + * type + + *media_files_songs* Table + ------------------------- + * media_file_id + * song_id + + *song_books* Table + ------------------ + The *song_books* table holds a list of books that a congregation gets + their songs from, or old hymnals now no longer used. This table has the + following columns: + * id + * name + * publisher + + *songs* Table + ------------- + This table contains the songs, and each song has a list of attributes. + The *songs* table has the following columns: + * id + * song_book_id + * title + * alternate_title + * lyrics + * verse_order + * copyright + * comments + * ccli_number + * song_number + * theme_name + * search_title + * search_lyrics + + *songs_topics* Table + -------------------- + This is a bridging table between the *songs* and *topics* tables, which + serves to create a many-to-many relationship between the two tables. It + has the following columns: + * song_id + * topic_id + + *topics* Table + -------------- + The topics table holds a selection of topics that songs can cover. This + is useful when a worship leader wants to select songs with a certain + theme. This table has the following columns: + * id + * name """ session, metadata = init_db(url)
_______________________________________________ Mailing list: https://launchpad.net/~openlp-core Post to : openlp-core@lists.launchpad.net Unsubscribe : https://launchpad.net/~openlp-core More help : https://help.launchpad.net/ListHelp