Guest User

Untitled

a guest
Jul 17th, 2018
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.60 KB | None | 0 0
  1. #!/usr/bin/perl
  2.  
  3. {
  4. package My::DB;
  5.  
  6. use base qw(Rose::DB);
  7.  
  8. __PACKAGE__->use_private_registry;
  9.  
  10. __PACKAGE__->default_domain("dev");
  11. __PACKAGE__->default_type("temp");
  12.  
  13. # register some fake dbs
  14.  
  15. __PACKAGE__->register_db(
  16. driver => "sqlite",
  17. database => "dummy-sqlite.db"
  18. );
  19.  
  20. __PACKAGE__->register_db(
  21. type => 'main',
  22. driver => 'mysql',
  23. database => 'dummy',
  24. host => 'localhost',
  25. username => 'dbuser',
  26. password => 'dbuser',
  27. );
  28. }
  29.  
  30. {
  31. package My::DB::Object;
  32.  
  33. use base qw(Rose::DB::Object);
  34. }
  35.  
  36. {
  37. package My::DB::Item;
  38.  
  39. use base qw(My::DB::Object);
  40.  
  41. __PACKAGE__->meta->setup(
  42. table => 'items',
  43. auto => 1,
  44. );
  45. }
  46.  
  47. {
  48. package My::DB::Item::Manager;
  49.  
  50. use base qw(Rose::DB::Object::Manager);
  51.  
  52. sub object_class { 'My::DB::Item' };
  53.  
  54. __PACKAGE__->make_manager_methods( 'items' );
  55. }
  56.  
  57. package main;
  58.  
  59. use Modern::Perl;
  60. use Data::Dumper;
  61. use diagnostics;
  62.  
  63. # modify db registry with real db info
  64.  
  65. My::DB->modify_db(
  66. domain => 'dev',
  67. type => 'temp',
  68. driver => 'sqlite',
  69. database => "real-sqlite.db",
  70. );
  71. my $temp_db = Maggie::DB->new('temp');
  72. say "temp-db => ", Data::Dumper->Dump([$temp_db]);
  73.  
  74. My::DB->modify_db(
  75. domain => 'dev',
  76. type => 'main',
  77. driver => 'mysql',
  78. database => 'realdb',
  79. host => 'localhost',
  80. username => 'dbuser',
  81. password => 'dbuser',
  82. );
  83. my $main_db = Maggie::DB->new('main');
  84. say "main-db => ", Data::Dumper->Dump([$main_db]);
Add Comment
Please, Sign In to add comment