Commit | Line | Data |
f54428ab |
1 | #!/usr/bin/env perl |
0c337847 |
2 | |
0c337847 |
3 | use strict; |
f54428ab |
4 | use warnings; |
5 | |
6 | use MyDatabase::Main; |
0c337847 |
7 | |
8 | my $schema = MyDatabase::Main->connect('dbi:SQLite:db/example.db'); |
9 | |
10 | # here's some of the sql that is going to be generated by the schema |
11 | # INSERT INTO artist VALUES (NULL,'Michael Jackson'); |
12 | # INSERT INTO artist VALUES (NULL,'Eminem'); |
13 | |
14 | my @artists = (['Michael Jackson'], ['Eminem']); |
15 | $schema->populate('Artist', [ |
16 | [qw/name/], |
17 | @artists, |
18 | ]); |
19 | |
20 | my %albums = ( |
21 | 'Thriller' => 'Michael Jackson', |
22 | 'Bad' => 'Michael Jackson', |
23 | 'The Marshall Mathers LP' => 'Eminem', |
24 | ); |
25 | |
26 | my @cds; |
27 | foreach my $lp (keys %albums) { |
c6e27318 |
28 | my $artist = $schema->resultset('Artist')->find({ |
0c337847 |
29 | name => $albums{$lp} |
30 | }); |
c6e27318 |
31 | push @cds, [$lp, $artist->id]; |
0c337847 |
32 | } |
33 | |
34 | $schema->populate('Cd', [ |
35 | [qw/title artist/], |
36 | @cds, |
37 | ]); |
38 | |
39 | |
40 | my %tracks = ( |
41 | 'Beat It' => 'Thriller', |
42 | 'Billie Jean' => 'Thriller', |
43 | 'Dirty Diana' => 'Bad', |
44 | 'Smooth Criminal' => 'Bad', |
45 | 'Leave Me Alone' => 'Bad', |
46 | 'Stan' => 'The Marshall Mathers LP', |
47 | 'The Way I Am' => 'The Marshall Mathers LP', |
48 | ); |
49 | |
50 | my @tracks; |
51 | foreach my $track (keys %tracks) { |
3d9632fd |
52 | my $cd = $schema->resultset('Cd')->find({ |
0c337847 |
53 | title => $tracks{$track}, |
54 | }); |
3d9632fd |
55 | push @tracks, [$cd->id, $track]; |
0c337847 |
56 | } |
57 | |
58 | $schema->populate('Track',[ |
59 | [qw/cd title/], |
60 | @tracks, |
61 | ]); |