GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Alzabo::FAQ(3) User Contributed Perl Documentation Alzabo::FAQ(3)

Alzabo::FAQ - Frequently Asked Questions

Assuming you have schema objects representing these already created (through reverse engineering for example) and both schemas are for the same RDBMS, you can simply do this:

 my @sql = $schema1->rules->schema_diff( old => $schema1, new => $schema2 );

The @sql array will contain all the SQL statements necessary to transform the schema in $schema1 into the schema in $schema2.

If you want to sync a schema object to the current state of the RDBMS backend's schema, check out the "Alzabo::Create::Schema->sync_backend" method.

Alzabo comes with a script called "make_html_docs.pl". It takes three arguments. The first is the source file directory root. The second is the target directory. The last is the absolute URL path that this target directory represents. If you have perl 5.6.0 or greated installed, it is recommended that you use it to run this script as the Pod::Html module included with more recent Perls does a much better job of making HTML.

If you were in the root of the source directory you might run this as:

 perl ./make_html_docs.pl ./lib /usr/local/apache/htdocs/Alzabo_docs /Alzabo_docs

The script will create an index.html file as well as turning the documentation into HTML.

You should simply preload the Alzabo::Runtime module (which loads all the other modules it needs).

In addition, if you are using Alzabo::MethodMaker, make sure it runs in the parent. This module can create a lot of methods on the fly and each method eats up some memory.

Finally, you can preload one or more schema objects. The easiest way to do this is to simply pass its name to Alzabo::Runtime when you use it, like this:

  use Alzabo::Runtime qw( schema1 schema2 );

For example, if I have a websites2categories table which maps a list of categories that a given web site should display -- and uses website_id and category_id in a 1..n relationship -- what is the proper way to set that up in the GUI and then in my code?

In the GUI, you can simply create a relationship from websites to categories, and declare it n..n. Alzabo will automatically create a table called websites_categories, and you're free to change the name to whatever you want.

Then if you use "Alzabo::MethodMaker", Alzabo will see that you have a table with 2 cols, both of which are part of the PK, and that it has 1..n relationships with 2 other tables, and it will create the appropriate methods.

You can see what methods are being created by setting the "ALZABO_DEBUG" environment variable to "METHODMAKER" before loading Alzabo::MethodMaker. It'll spit everything out to STDERR. There's also the generated documentation, which is available via the "docs_as_pod()" schema method after MethodMaker does its thing.

Dave Rolsky, <autarch@urth.org>
2022-04-07 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.