Note: This repository should be imported as code.cloudfoundry.org/bbs
.
API to access the database for Diego.
A general overview of the BBS is documented here.
To interact with the BBS from outside of Diego, use the methods provided on the
Client
interface.
Components within Diego may use the full InternalClient
interface to modify internal state.
The protobuf models in this repository require version 3.5 or later of the protoc
compiler.
On Mac OS X with Homebrew, run the following to install it:
brew install protobuf
- Download a zip archive of the latest protobuf release from here.
- Unzip the archive in
/usr/local
. chmod a+x /usr/local/bin/protoc
to make sure you can use the binary.
If you already have an older version of protobuf installed, you must uninstall it first by running
brew uninstall protobuf
Install the gogoproto
compiler by running:
go install github.com/gogo/protobuf/protoc-gen-gogoslick
Run go generate ./...
from the root directory of this repository to generate code from the .proto
files as well as to generate fake implementations of certain interfaces for use in test code.
The following documentation assume the following versions:
- protoc
> v3.5.0
- ruby protobuf gem
> 3.6.12
Run the following commands from the models
directory to generate .pb.rb
files for the BBS models:
gem install protobuf
cp $(which protoc-gen-ruby){,2}
protoc -I$GOPATH/src --proto_path=. --ruby2_out=/path/to/ruby/files *.proto
Note Replace /path/to/ruby/files
with the desired destination of the
.pb.rb
files. That directory must exist before running this command.
Note The above steps assume that
github.com/gogo/protobuf/gogoproto/gogo.proto
is on the GOPATH
.
Note Since protoc v3 now ships with a ruby generator, the built-in
generator will mask the gem's binary. This requires a small hack in order to be
able to use the protobuf gem, the hack is simply to rename the protobuf gem's
binary to be ruby2
and ask protoc to generate ruby2
code which will force
it to use the binary. For more information please
read this github issue
See the instructions in Running the Experimental SQL Unit Tests for testing against a SQL backend
See Migrations for information about writing database migrations.