Metadata-Version: 2.1
Name: django-filemaker-pyodbc
Version: 0.0.2
Summary: Django Database Engine for Filemaker using pyodbc
Home-page: https://bitbucket.org/csmu/django-filemaker-pyodbc
Author: Keith John Hutchison - Ceiteach Seán Mac Úistin
Author-email: keith@bd2l.com.au
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown

# django-filemaker-pyodbc

## A Django Custom Database Engine that works with Filemaker using pyodbc.

### Initial components derived from https://github.com/lionheart/django-pyodbc. Using that package as a guide was very helpful.

#### <i>Use with a little caution</i> as some functions in some components are expecting a MS-SQL backend. 
Those will be changed in due course as needed. Pull requests welcome.

#### Note that <b>NO</b> testing has been done as yet on migrations.
Our first use case was talking to an existing filemaker solution.


Example model. Note `managed = False` and `db_table` must match the table object name in the Filemaker Relationship Graph window.

```

\# -*- coding: utf-8 -*-

from \_\_future\_\_ import unicode_literals

from django.db import models

class Depot(models.Model):

    id = models.IntegerField(primary_key=True,help_text='id',db_column='id') 
    uuid = models.UUIDField(null=True,blank=True,help_text='uuid',db_column='uuid',db_index=True,unique=True) 

    name = models.CharField(max_length=1024,null=True,help_text='134.13',db_column='depot_name',db_index=True)

    filemaker_base_table_id = 134

    def __str__(self):
        return '%s id: %d' % (self.name, self.id)

    class Meta:
        db_table = 'depot'
        managed = False
        verbose_name = 'Depot'
        verbose_name_plural = 'DepotList'


```


To use.

* `pip install django-filemaker-pyodbc`
* [Install ODBC Drivers for Filemaker](https://fmhelp.filemaker.com/docs/edition/en/fm_odbc_jdbc_guide.pdf)
* Create an odbc connection to the Filemaker solution and test that the credentials work.
* [install unixodbc](https://duckduckgo.com/?q=install+unixodbc)
* Add references to the Filemaker odbc library that unixodbc can see.

	Example content within `/usr/local/etc/odbcinst.ini`


	`[filemaker]`

	`Driver = /Library/ODBC/FileMaker ODBC.bundle/Contents/MacOS/fmodbc.so`

	`DriverManagerEncoding=UTF-16`

	`Setup  = `



	To find where the settings are for unixodbc try `odbcinst -j`


* Add your connection details to your settings.py file.

``` 
DATABASES = {
    'default': {
        'ENGINE': 'django_filemaker_pyodbc',
        'HOST': 'fully qualified domain or ip address',
        'PORT': '2399',
        'USER': 'filemaker user account with odbc/jdbc permissions',
        'PASSWORD': '********',
        'NAME': 'filemaker file name without the extension - preferably without spaces',
        'OPTIONS' : {
            'driver' : 'filemaker',
            'driver_supports_utf8' : True,
			'autocommit' : True,
        },
    }
}
```


Filemaker SQL is a partial implementation of SQL 92
See [Filemaker 16 SQL Reference](https://fmhelp.filemaker.com/docs/16/en/fm16_sql_reference.pdf) for more details.


