|
14 | 14 | # See the License for the specific language governing permissions and |
15 | 15 | # limitations under the License. |
16 | 16 |
|
| 17 | +# silence warnings just for demo -- applications would typically not do this |
| 18 | +import os |
| 19 | +os.environ['CQLENG_ALLOW_SCHEMA_MANAGEMENT'] = '1' |
| 20 | + |
17 | 21 | import logging |
18 | 22 |
|
19 | 23 | log = logging.getLogger() |
20 | | -log.setLevel('DEBUG') |
| 24 | +log.setLevel('INFO') |
21 | 25 | handler = logging.StreamHandler() |
22 | 26 | handler.setFormatter(logging.Formatter("%(asctime)s [%(levelname)s] %(name)s: %(message)s")) |
23 | 27 | log.addHandler(handler) |
|
27 | 31 | from cassandra.cqlengine import columns |
28 | 32 | from cassandra.cqlengine import connection |
29 | 33 | from cassandra.cqlengine import management |
30 | | -from cassandra.cqlengine.exceptions import ValidationError |
| 34 | +from cassandra.cqlengine import ValidationError |
31 | 35 | from cassandra.cqlengine.models import Model |
32 | | -from cassandra.cqlengine.query import BatchQuery |
| 36 | +from cassandra.cqlengine.query import BatchQuery, LWTException |
33 | 37 |
|
34 | 38 | KEYSPACE = "testkeyspace" |
35 | 39 |
|
@@ -61,12 +65,19 @@ def main(): |
61 | 65 | log.info("### syncing model...") |
62 | 66 | management.sync_table(FamilyMembers) |
63 | 67 |
|
64 | | - log.info("### add entities serially") |
65 | | - simmons = FamilyMembers.create(surname='Simmons', name='Gene', birth_year=1949, sex='m') # default uuid is assigned |
| 68 | + # default uuid is assigned |
| 69 | + simmons = FamilyMembers.create(surname='Simmons', name='Gene', birth_year=1949, sex='m') |
66 | 70 |
|
67 | | - # add members later |
| 71 | + # add members to his family later |
68 | 72 | FamilyMembers.create(id=simmons.id, surname='Simmons', name='Nick', birth_year=1989, sex='m') |
69 | | - FamilyMembers.create(id=simmons.id, surname='Simmons', name='Sophie', sex='f') |
| 73 | + sophie = FamilyMembers.create(id=simmons.id, surname='Simmons', name='Sophie', sex='f') |
| 74 | + |
| 75 | + nick = FamilyMembers.objects(id=simmons.id, surname='Simmons', name='Nick') |
| 76 | + try: |
| 77 | + nick.iff(birth_year=1988).update(birth_year=1989) |
| 78 | + except LWTException: |
| 79 | + print "precondition not met" |
| 80 | + |
70 | 81 | # showing validation |
71 | 82 | try: |
72 | 83 | FamilyMembers.create(id=simmons.id, surname='Tweed', name='Shannon', birth_year=1957, sex='f') |
@@ -95,6 +106,9 @@ def main(): |
95 | 106 | for m in FamilyMembers.objects(id=simmons.id, surname=simmons.surname): |
96 | 107 | print m, m.birth_year, m.sex |
97 | 108 |
|
| 109 | + log.info("### Constrain on clustering key") |
| 110 | + kids = FamilyMembers.objects(id=simmons.id, surname=simmons.surname, name__in=['Nick', 'Sophie']) |
| 111 | + |
98 | 112 | log.info("### Delete a record") |
99 | 113 | FamilyMembers(id=hogan_id, surname='Hogan', name='Linda').delete() |
100 | 114 | for m in FamilyMembers.objects(id=hogan_id): |
|
0 commit comments